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;
}
};