力扣68.文本左右对齐

2024-09-01 01:36
文章标签 力扣 文本 68 左右 对齐

本文主要是介绍力扣68.文本左右对齐,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import java.util.ArrayList;
import java.util.List;class Solution {public List<String> fullJustify(String[] words, int maxWidth) {List<String> result = new ArrayList<>(); // 创建一个列表用于存储结果int index = 0; // 初始化索引为0,用于遍历单词数组while (index < words.length) { // 当索引小于单词数组长度时,继续循环int count = words[index].length(); // 计算当前单词的长度int last = index + 1; // 初始化last为当前索引+1,用于确定当前行可以容纳的单词范围while (last < words.length) { // 当last小于单词数组长度时,继续循环if (words[last].length() + count + 1 > maxWidth) break; // 如果下一个单词加上当前单词长度和空格超过最大宽度,跳出循环count += words[last].length() + 1; // 累加单词长度和空格last++; // 更新last的值}StringBuilder builder = new StringBuilder(); // 创建一个StringBuilder用于构建当前行的字符串int diff = last - index - 1; // 计算当前行可以容纳的单词数量if (last == words.length || diff == 0) { // 如果是最后一行或者只有一个单词for (int i = index; i < last; i++) { // 遍历当前行的单词builder.append(words[i] + " "); // 将单词添加到builder中,并在单词之间添加空格}builder.deleteCharAt(builder.length() - 1); // 删除最后一个多余的空格while (builder.length() < maxWidth) { // 如果当前行长度小于最大宽度,添加空格builder.append(" ");}} else { // 如果不是最后一行且有多个单词int spaces = (maxWidth - count) / diff; // 计算每个单词之间的平均空格数int r = (maxWidth - count) % diff; // 计算需要额外添加一个空格的位置数for (int i = index; i < last - 1; i++) { // 遍历当前行的单词,除了最后一个builder.append(words[i]); // 添加单词builder.append(" "); // 添加空格for (int j = 0; j < spaces + (i - index < r ? 1 : 0); j++) { // 根据平均空格数和额外空格数添加空格builder.append(" ");}}builder.append(words[last - 1]); // 添加最后一个单词}result.add(builder.toString()); // 将构建好的字符串添加到结果列表中index = last; // 更新索引为last,准备处理下一行}return result; // 返回结果列表}
}

这篇关于力扣68.文本左右对齐的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125570

相关文章

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学