LeetCode557. 反转字符串中的单词III
参考代码
class Solution {
public:
string reverseWords(string s) {
//使用指针的方法
int len = s.size();
int start = 0, end = 0;
while( start < len && end < len) {
while( end < len && s[end] != ' ')
end++;
for(int i = start, j = end-1; i < j; ++i, --j) {
swap(s[i],s[j]);
}
// start = end+1; 超出时间限制,end自身不会增加,所以第二个while判断中s[end]会一直等于空格。
// start = end++; 先赋值end,再加一
start = ++end;
}
return s;
}
};
/* 使用字符处理类
string res = "", t = "";
istringstream is(s); //定义字符处理类,并读入字符串为is
//分别处理字符串中的每一个单词,并赋值给t
while( is>>t ) {
//调用翻转函数
reverse(t.begin(),t.end());
res += t + " ";
}
//cout<<res<<endl;
//由于在最后一个字符串加了空白字符,因此需要将其弹出
res.pop_back();
return res;
*/