给定一个字符串,逐个翻转字符串中的每个单词。
示例:
输入: "the sky is blue", 输出: "blue is sky the".
说明:
- 无空格字符构成一个单词。
- 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
- 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
class Solution {
public:
void reverseWords(string &s)
{
int len = s.size();
string str = "";
vector<string> strs;
for(int i = 0; i < len; i++)
{
if(i == len - 1 && s[i] != ' ')
str += s[i];
if(i == len - 1 || s[i] == ' ')
{
if(str == "")
continue;
strs.push_back(str);
str = "";
}
else
{
str += s[i];
}
}
string res = "";
for(int i = strs.size() - 1; i >= 0; i--)
{
if(i != strs.size() - 1)
res += " ";
res += strs[i];
}
s = res;
}
};