当前位置: 首页 > 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
http://www.lqws.cn/news/538723.html

相关文章:

  • 2-深度学习挖短线股-3-训练数据计算
  • mysql无法启动的数据库迁移
  • 【办公类-105-01】20250626 托小班报名表-条件格式-判断双胞胎EXCLE
  • Python 中 `for` 循环与 `while` 循环的实际应用区别:实例解析
  • 【NLP】使用 LangGraph 构建 RAG 的Research Multi-Agent
  • FFMpeg的AVFrame数据格式解析
  • C++(模板与容器)
  • 重定向攻击与防御
  • AI+时代已至|AI人才到底该如何培育?
  • AI编程工具深度对比:腾讯云代码助手CodeBuddy、Cursor与通义灵码
  • vscode ssh远程连接到Linux并实现免密码登录
  • 爬虫简单实操2——以贴吧为例爬取“某吧”前10页的网页代码
  • Spring Cloud Feign 整合 Sentinel 实现服务降级与熔断保护
  • [AI]从0到1通过神经网络训练模型
  • 每日算法刷题Day38 6.25:leetcode前缀和3道题,用时1h40min
  • 第七章:总结
  • 【RabbitMQ】多系统下的安装配置与编码使用(python)
  • Spring Task定时任务详解与实战应用
  • java中的anyMatch和allMatch方法
  • OSEK/VDX OS ISO17356-3,【1】规范概述
  • SpringBoot项目快速开发框架JeecgBoot——Web处理!
  • linux cp与mv那个更可靠
  • MySQL5.7和8.0 破解root密码
  • 快速傅里叶变换(FFT)是什么?
  • python中学物理实验模拟:斜面受力分析
  • 圆周期性显示和消失——瞬态实现(CAD c#二次开发、插件定制)
  • Nordic nRF54L15 SoC对包含电池监测、中断处理和电源轨控制的定制 nPM1300 示例
  • springcloud 尚硅谷 看到9开头
  • 华为云鸿蒙应用入门级开发者认证 实验(HCCDA-HarmonyOS Cloud Apps)
  • 玄机抽奖Spring Web项目