1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| string reverseWords(string s) { string w, tmp; int i = 0, j = s.size() - 1;
while(i <= j && i >= 0) { while(j > 0 && s[j] == ' ') { j--; } i = j-1; while(i >= 0 && s[i] != ' ') { i--; }
for(int q = i+1; q <= j; q++) { if(s[q] == ' ') continue; tmp.append(1, s[q]); }
if(w.size() > 0 && tmp.size() > 0) { tmp = " " + tmp; }
w.append(tmp); tmp = ""; j = i-1; i--; }
return w; }
|