对字符串的单词进行反转
思路,利用过程双指针定位每个单词起始坐标,首尾反转。
class Solution {
public:
string reverseWords(string s) {
int n = s.length();
//反转起始
for(int i=0,start;i<n-1;){
//标记反转单词的初始位置
start = i;
//i指针到达单词结尾
while(i<n && s[i]!=' '){
i++;
}
//定义左右指针反转单词
for(int l=start,r=i-1;l<r;){
swap(s[l],s[r]);
l++;
r--;
}
//去除空格
while(i<n && s[i]==' '){
i++;
}
}
return s;
}
};