1.最后一行的处理与前面不一样
2.空格需要均匀分布
class Solution { public: vector<string> fullJustify(vector<string>& words, int maxWidth) { int n=words.size(); vector<string> ans; int i,j; int cur=0; int num=0; for(i=0;i<n;i+=num) { cur=0; num=0; int space=0; string tmp=""; for(j=i;j<n;j++) { cur+=words[j].size(); num++; if(cur+num-1>maxWidth) break; } if(cur+num-1>maxWidth) { cur-=words[j].size(); num--; } if(j>=n) { for(j=i;j<i+num-1;j++) { words[j]+=' '; tmp+=words[j]; } tmp+=words[j]; int len=tmp.size(); for(j=0;j<maxWidth-len;j++) tmp+=' '; } else { space=maxWidth-cur; while(space) { if(num==1) { words[i]+=' '; space--; } for(j=i;j<i+num-1&&space;j++) { words[j]+=' '; space--; } } for(j=i;j<i+num;j++) tmp+=words[j]; } ans.push_back(tmp); } return ans; } };