class Solution {
public:
vector<string> fullJustify(vector<string>& words, int maxWidth) {
int i;//i表示扫描到的word下标
int k;//k表示此行能够放下的word的数目
int l;//l表示此行放下的word的字符数目
vector<string> ret;
if(maxWidth==0)
{
ret.push_back("");
return ret;
}
for(i=0;i<words.size();i+=k)
{
for(k=0,l=0;(i+k<words.size())&&(l+words[i+k].size()<=maxWidth-k);k++)//确定k和l
{
l+=words[i+k].size();
}
string temp=words[i];
for(int j=0;j<k-1;j++)//填充" "
{
if(i+k>=words.size())//到了最后一行
temp+=" ";
else
temp+=string((maxWidth-l)/(k-1)+(j<(maxWidth-l)%(k-1)),' ');
temp+=words[i+j+1];
}
temp+=string(maxWidth-temp.size(),' ');//最后一行右边填充" "
ret.push_back(temp);
}
return ret;
}
};
68. Text Justification
最新推荐文章于 2016-12-19 10:02:58 发布