标签:
public ArrayList<String> fullJustify(String[] words, int L) { ArrayList<String> res = new ArrayList<String>(); if(words==null || words.length==0) return res; int count = 0; int last = 0; for(int i=0;i<words.length;i++) { if(count+words[i].length()+(i-last)>L) { int spaceNum = 0; int extraNum = 0; if(i-last-1>0) { spaceNum = (L-count)/(i-last-1); extraNum = (L-count)%(i-last-1); } StringBuilder str = new StringBuilder(); for(int j=last;j<i;j++) { str.append(words[j]); if(j<i-1) { for(int k=0;k<spaceNum;k++) { str.append(" "); } if(extraNum>0) { str.append(" "); } extraNum--; } } for(int j=str.length();j<L;j++) { str.append(" "); } res.add(str.toString()); count=0; last=i; } count += words[i].length(); } StringBuilder str = new StringBuilder(); for(int i=last;i<words.length;i++) { str.append(words[i]); if(str.length()<L) str.append(" "); } for(int i=str.length();i<L;i++) { str.append(" "); } res.add(str.toString()); return res; }这道题属于那种文本编辑的子操作之类的题目,从算法思路上没有什么特别。不过还是相当多的实现细节,别easy在第一时间,你可能想练习几次哈。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
Text Justification -- LeetCode
标签:
原文地址:http://www.cnblogs.com/yxwkf/p/4715192.html