test justification
1 vector<string> fullJustify(vector<string> &words, int L) { 2 // Start typing your C/C++ solution below 3 // DO NOT write int main() function 4 vector<string> v; 5 string s = ""; 6 for( int i=0; i< words.size(); ) 7 { 8 int l = words[i].length(); 9 int start = i; 10 s += words[start]; 11 i++; 12 while( i < words.size() && l + words[i].length() + 1<= L ) 13 l += words[i++].length()+1; 14 15 l = 0; 16 for( int j=start;j<i;j++ ) 17 l+=words[j].length(); 18 19 int num = i - start; 20 21 if( num == 1 ) 22 { 23 for( int j=words[start].length(); j<L;j++) 24 s = s + " "; 25 } 26 else 27 { 28 int blank = 0; 29 for( int j=start+1; j < i; j++,num-- ) 30 { 31 blank = ceil(((float)(L - l ))/(num-1)) ; 32 if( i == words.size() ) blank = min(1,blank); 33 l += blank; 34 for( int k=0; k<blank;k++) 35 s = s + " "; 36 s += words[j]; 37 } 38 for( int j=s.length(); j< L; j++ ) 39 s = s + " "; 40 } 41 v.push_back(s); 42 s = ""; 43 } 44 return v; 45 46 }
posted on 2013-07-04 10:19 jumping_grass 阅读(173) 评论(0) 收藏 举报
浙公网安备 33010602011771号