题目描述:
给你一个字符串 s ,逐个翻转字符串中的所有 单词 。
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。
说明:
输入字符串 s 可以在前面、后面或者单词间包含多余的空格。
翻转后单词间应当仅用一个空格分隔。
翻转后的字符串中不应包含额外的空格。
示例:
输入:s = "the sky is blue"
输出:"blue is sky the"
解:
class Solution {
public:
string reverseWords(string s) {
vector<string> vec;
string ans = "";
int len = s.length();
for (int i = 0; i < len; ){
if (s[i] == ' ') {++i; continue;}
else{
int j = i+1;
while(j < len){
if (s[j] == ' ') break;
++j;
}
string sub = s.substr(i,j-i);
vec.push_back(sub);
i = j + 1;
}
}
reverse(vec.begin(),vec.end());
len = vec.size();
for (int i = 0; i < len; ++i)
if (i==0) ans = vec[i];
else ans+= " " + vec[i];
return ans;
}
};