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

Java | Leetcode Java题解之第68题文本左右对齐

题目:

题解:

class Solution {private String line(List<String> list,int maxWidth,int totalLength,boolean isLast){StringBuilder sb = new StringBuilder();sb.append(list.get(0));if(list.size() == 1){String ap = " ".repeat(maxWidth - totalLength);sb.append(ap);return sb.toString();}else{if(!isLast){int singleSpace = (maxWidth - totalLength) / (list.size() - 1);boolean isExact = false;int ret = 0;if(singleSpace * (list.size() - 1) == (maxWidth - totalLength)) isExact = true;else ret = (maxWidth - totalLength) - singleSpace * (list.size() - 1);String sp = " ".repeat(singleSpace);for(int i = 1;i < list.size();i++){// spaceif(!isExact && (ret--) > 0) sb.append(" ");sb.append(sp);// wordsb.append(list.get(i));}return sb.toString();}else{for(int i = 1;i < list.size();i++){// spacesb.append(" ");// wordsb.append(list.get(i));}sb.append(" ".repeat(maxWidth - sb.length()));return sb.toString();}}}public List<String> fullJustify(String[] words, int maxWidth) {int pointer = 0;int n = words.length;int totalLength = 0;int totalSize = 0;List<String> ans = new ArrayList();List<String> tmp = new ArrayList();while(pointer < n){totalLength += words[pointer].length();totalSize++;tmp.add(words[pointer]);if(totalLength + totalSize - 1 > maxWidth){tmp.remove(tmp.size() - 1);ans.add(line(tmp,maxWidth,totalLength - words[pointer].length(),false));totalLength = words[pointer].length();totalSize = 1;tmp.clear();tmp.add(words[pointer]);}pointer++;}ans.add(line(tmp,maxWidth,totalLength,true));return ans;}
}
http://www.lryc.cn/news/346558.html

相关文章:

  • Windows安装MySQL 8.4.0免安装版
  • 初识java--javaSE(3)--方法,递归,数组,
  • AWS ECS Fargate: 如何获取正在运行的服务
  • Rust 常用 Web 开源代码库
  • 零代码平台助力中国石化江苏油田实现高效评价体系
  • [优选算法]------滑动窗⼝——209. 长度最小的子数组
  • 简述a标签target属性的取值和作用
  • uniapp管理后台编写,基于uniadmin和vue3实现uniapp小程序的管理后台
  • FFmpeg常用API与示例(四)——过滤器实战
  • 解决springboot项目的网站静态页面显示不全问题
  • 表面的相似,本质的不同
  • 问题:幂等性 分布式session
  • Golang | Leetcode Golang题解之第66题加一
  • c++ STL 之栈—— stack 详解
  • 鸿蒙开发接口Ability框架:【(窗口扩展能力)】
  • AutoCAD中密集的填充打散后消失的问题
  • 基于Matplotlib的模型性能可视化工作
  • KAN网络最全解析——比肩MLP和Transformer?
  • ASP.NET学生信息管理系统
  • 图片改大小尺寸怎么改?几招教你搞定图片修改
  • Scala编程入门:从零开始的完整教程
  • Proxmox VE 8 SDN创建VLAN隔离用户网络
  • API低代码平台介绍3-异构数据源的数据查询功能
  • 【Linux】-网络请求和下载、端口[6]
  • Github2024-05-10开日报 Top10
  • 2016-2021年全国范围的2.5m分辨率的建筑屋顶数据
  • Gitea 上传用户签名
  • 【原创】springboot+mysql物资库存管理系统设计与实现
  • vulnhub靶场之FunBox-5
  • 1分钟搞定Pandas DataFrame创建与索引