题解 | #翻转单词序列#
翻转单词序列
https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3
//先把每个单词内部局部反转,然后再整体反转即可。
class Solution {
public:
string ReverseSentence(string str) {
int begin,end=0;
while(end<str.size())
{
while(str.at(end)!=char{' '})
{
end++;//抵达该单词的终点。
if(end>=str.size())break;
}
int j=0;
for(int i=begin;i<(begin+end)/2;i++)//局部单词内的反转。
{
swap(str[i],str[end-j-1]);
j++;
}
end++;
begin=end;//都跳过空格,往前步进一步。
}
for(int i=0;i<str.size()/2;i++)
{
swap(str.at(i),str.at(str.size()-i-1));
}
return str;
}
};
