依次查找空格,把每一个单词作为一个小string进行反转,注意最后一个单词后面没有空格也要反转。
class Solution {
public:
string reverseWords(string s) {
int j = 0;
for (int i = 0; i < s.length(); i++)
if ((s[i] == 32) || (i == s.length()-1))
{
int temp;
if (i == s.length() - 1) temp = i; else temp = i - 1;
while (j < temp) swap(s[j++], s[temp--]);
j = i + 1;
}
return s;
}
};
其他算法和这个差不多,我的算法跑起来还要快一些。