题目
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: “Let’s take LeetCode contest”
输出: “s’teL ekat edoCteeL tsetnoc”
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
思路
1、遍历字符串,将每个单词存放到数组中,以空格为标志,一个单词结束后,将其反转,再放入新的字符串中。
2、指针操作。
实现方法
class Solution {
public:
string reverseWords(string s) {
string res;
vector<char> temp;
s += ' '; //在s后面加一个空格,作为单词的分隔标志
for(int i=0;i<s.size();i++){
if(s[i]!=' '){
temp.push_back(s[i]);
}else {
//将单词反向存入新的字符串中
for(int j=temp.size()-1;j>=0;j--){
res += temp[j];
}
if(i!=s.size()-1)
res += ' ';
//将数组清零,开始下一个单词
temp.clear();
}
}
return res;
}
};