Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
题意:其实这道题比较简单,就是需要处理一些细节:例如,两个单词之间可能有多个空格,反转后多个空格只保留一个。
class Solution { public: void reverseWords(string &s) { int len = s.length(); vector<string> words; int i; string word = ""; for(i=0; i<len; i++) { if (s[i] == ' ') { if (word.length() > 0) { words.push_back(word); } word = ""; continue; } if (i == len - 1) { word += s[i]; words.push_back(word); continue; } word += s[i]; } len = words.size(); word = ""; for(i=len-1; i>=0; i--) { word += words[i]; if (i > 0) { word += " "; } } s = word; } };