标签:
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