当前位置: 首页 > news >正文

面试150 文本左右对齐

在这里插入图片描述

思路

按顺序将单词逐个加入当前行,维护当前行的单词总长度和单词列表,当加入一个新单词会导致当前行超出设定宽度maxWidth时,开始对这一行进行两端对齐处理。具体做法是将所需的空格均匀分配在相邻单词之间,若无法平均分配,则从左至右多分配一个空格,直到补满整行。处理完当前行后清空,开始新一行。所有单词处理完后,最后一行采用左对齐方式,用空格补齐到maxWidth。该算法保证了每一行长度一致,并尽可能使文本左右对齐。

class Solution:def fullJustify(self, words: List[str], maxWidth: int) -> List[str]:res=[] #结果列表cur=[]#存当前行的单词num_of_letters=0 #当前行不包括空格的长度for word in words:#对于每个单词word,判断如果把它加到当前行,会不会超过maxWidthif num_of_letters+len(word)+len(cur)>maxWidth:#计算需要的空格数for i in range(maxWidth-num_of_letters):cur[i%(len(cur)-1 or 1)]+=' 'res.append(''.join(cur))cur=[]num_of_letters=0cur.append(word)num_of_letters+=len(word)res.append(' '.join(cur).ljust(maxWidth))#最后一行左对齐,ljust是内置函数return res

相关文章:

  • 竞价托管网站建设青岛seo百科
  • 做网站最好用的软件搜索引擎优化排名工具
  • 设计上海网站建设网络营销网课
  • 最专业的做网站公司哪家好2021拉新推广佣金排行榜
  • 网站怎么做全屏滚动网络营销的方式有十种
  • 安徽建筑人才网百度推广优化怎么做
  • 用Dockerfile点亮你的容器化世界:从零到精通
  • 基于定制开发开源AI智能名片S2B2C商城小程序源码的H5游戏开发模式创新研究
  • 【音视频】Ubuntu下配置ffmpeg库
  • 网络路由策略与过滤策略原理及实验脚本
  • 【零基础学AI】 第6讲:数据可视化基础
  • 【STM32】[特殊字符] WWDG(窗口看门狗)学习笔记
  • 【unitrix】 4.7 库数字取反(not.rs)
  • Vue 3 高级编程技巧
  • 《天行数据查询系统项目介绍》
  • 2025.6.26总结
  • 云原生 Cloud Native
  • uniapp打包ios和苹果应用安装/上架详细指南
  • MySQL (二):范式设计
  • LeetCode 2302.统计得分小于K的子数组数目
  • 基于 Faker 生成测试数据:user_agent、日期、人名等
  • 吉林大学微机系统期末复习整理
  • Vue.js 过滤器详解
  • Beetl工具类 BeetlUtils
  • 【swagger】Swagger的简单使用
  • 探索国产高精度嵌入式仿真教学新纪元——基于深圳航天科技创新研究院嵌入式仿真实验教学平台的ADC实验实践