给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
class Solution {
public String reverseWords(String s) {
char[] buffer = s.toCharArray();
int length = buffer.length;
int left = 0, right = 0;
boolean last;
for(int i = 0; i < length; i++){
last = i == length-1;
if(buffer[i] == ' '||last){
left = right;
right = i-(last?0:1);
for(;left<right;left++,right--){
char temp = buffer[left];
buffer[left] = buffer[right];
buffer[right] = temp;
}
right = i+1;
}
}
return new String(buffer);
}
}
class Solution {
public:
string reverseWords(string s) {
int i = 0, j = 0;
string res;
while(j < s.length()){
if(j != s.length()-1){
if(s[j] != ' ') j++;
else{
for(int k = j-1; k >= i; k--) res += s[k];
res += ' ';
j++;
i = j;
}
}else{
for(int k = j; k >= i; k--) res += s[k];
break;
}
}
return res;
}
};