给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:“Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”
我使用了原地变换的思维,找到一个单词,使用双指针将单词原地逆序
class Solution {
public:
string reverseWords(string s) {
int len = s.length();
int start;
int i = 0;
int l,r;
while(i < len){
start = i;
while(i<len&&s[i]!=' ')
i++;
l = start;
r = i-1;
while(l < r){
swap(s[l],s[r]);
l++;
r--;
}
while(i<len&&s[i]==' ')
i++;
}
return s;
}
};