题目
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: “Let’s take LeetCode contest”
输出: “s’teL ekat edoCteeL tsetnoc”
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
思路
用一个变量记录上一次遇到空格的后一个坐标(也就是常规情况下单词的开头),如果再遇到空格,就逆序回去存在新的字符串里,再更新记录值,直到最后循环结束,但是还没完,因为最后一个单词末尾没有空格,记得加上
代码
class Solution {
public:
string reverseWords(string s) {
if(s.length() == 0)
return s;
string str;
int re=0;
int i;
for(i=0;i < s.length();i++){
if(s[i]==' '){
for(int j=i-1;j>=re;j--)
str += s[j];
re = i + 1;
str += ' ';
}
}
for(i=s.length()-1;i>=re;i--)
str += s[i];
return str;
}
};