热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

力扣每日一题20210909文本左右对齐

文章目录68.文本左右对齐题目描述思路:模拟68.文本左右对齐题目描述文本左右对齐思路:模拟统计构成一行的单词后,将该行进行左右对齐

文章目录

  • 68.文本左右对齐
    • 题目描述
    • 思路:模拟




68.文本左右对齐

题目描述

文本左右对齐



思路:模拟

统计构成一行的单词后,将该行进行左右对齐的空格补齐。
模拟

class Solution:def fullJustify(self, words: List[str], maxWidth: int) -> List[str]:# 将word[left]到word[right-1]的单词组合成一个左右对齐的行def process(left, right):# 结尾行&#xff0c;向后补齐空格if right &#61;&#61; n:res &#61; &#39; &#39;.join(words[left:right])res &#43;&#61; &#39; &#39; * (maxWidth - len(res))return resspaces &#61; right - left - 1# 单独单词构成的行&#xff0c;向后补齐空格if not spaces:return words[left] &#43; &#39; &#39; * (maxWidth - len(words[left]))cur &#61; sum(len(w) for w in words[left:right]) &#43; spaces# 统计每个空隙间的空格数each &#61; [1] * spacesj &#61; 0while cur < maxWidth:# 根据题意优先补左边&#xff0c;所以从0开始each[j] &#43;&#61; 1j &#43;&#61; 1if j &#61;&#61; spaces:j &#61; 0cur &#43;&#61; 1j &#61; 0res &#61; &#39;&#39;# 根据每个间隙的空格数构建该行字符串while left < right:res &#43;&#61; words[left]if left < right - 1:res &#43;&#61; &#39; &#39; * each[j]j &#43;&#61; 1left &#43;&#61; 1return resn &#61; len(words)idx &#61; i &#61; 0ans &#61; []while idx < n:i &#61; idxcurLen &#61; len(words[idx])idx &#43;&#61; 1# 统计哪些单词组成一行while idx < n and curLen < maxWidth:# 单词之间需要空格curLen &#43;&#61; 1curLen &#43;&#61; len(words[idx])idx &#43;&#61; 1if curLen > maxWidth:idx -&#61; 1curLen -&#61; len(words[idx]) &#43; 1ans.append(process(i, idx))return ans


推荐阅读
author-avatar
苏小明2602896955
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有