算法1
使用vector将单词与空格分别存入,最后逆序输出
class Solution {
public:
string reverseWords(string s) {
vector<string> data;
string result;
for(int i=0;i<s.size();i++)
{
if(s[i]!=' ') result+=s[i];
else data.push_back(" "+result),result="";
}
data.push_back(result);
result="";
for(int i=data.size()-1;i>=0;i--) {
result+=data[i];
}
return result;
}
};
双指针算法
class Solution {
public:
string reverseWords(string s) {
reverse(s.begin(),s.end());
for(int i=0,j;i<s.size();i++)
{
j=i;
while(j<s.size() && s[j]!=' ') j++;
reverse(s.begin()+i,s.begin()+j);
i=j;
}
return s;
}
};
首尾空格,和中间连续空格的情况没考虑吧
厉害了