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)    收藏  举报

导航