给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
python我用了函数内置的操作[::-1]翻转。
class Solution(object):
def reverseWords(self, s):
"""
:type s: str
:rtype: str
"""
return ' '.join([i[::-1] for i in s.split(' ')])
C++我没有用标准库reverse函数,而是用了两个迭代去依次遍历寻找单词然后逐个单词反转。
class Solution {
public:
string reverseWords(string s) {
int i = 0;
int j = 0;
string res;
while(j < s.length()){
if(j != (s.length() - 1)){
if(s[j] != ' ') j += 1;
else{
for(int k = (j - 1);k >= i;k--) res += s[k];
res += ' ';
j += 1;
i = j;
}
}
else if(i == j){
res += s[i];
break;
}
else{
for(int k = j;k >= i;k--) res += s[k];
break;
}
}
return res;
}
};