1、题目描述
2、问题分析
使用一个vector存储每个单词。
3、代码
1 void reverseWords(string &s) { 2 vector<string> v; 3 for (string::iterator it = s.begin(); it != s.end(); ) { 4 if (*it == ' ') { 5 it++; 6 } 7 else { 8 auto itr = it + 1; 9 10 while (*itr != ' ' && itr != s.end()) { 11 itr++; 12 } 13 14 string sub = s.substr(it - s.begin(), itr - it); 15 v.push_back(sub); 16 if (itr == s.end()) 17 break; 18 it = itr + 1; 19 } 20 } 21 22 s.clear(); 23 for (vector<string>::reverse_iterator rv = v.rbegin(); rv != v.rend(); rv++) { 24 if (rv + 1 != v.rend()) { 25 s += *rv; 26 s += ' '; 27 } else { 28 s += *rv; 29 } 30 } 31 32 }