927. Reverse Words in a String II
class Solution {
public:
/**
* @param str: a string
* @return: return a string
*/
string reverseWords(string &str) {
// write your code here
const int size = str.size();
for(int i = 0; i < size/2; i++){
char temp = str[i];
str[i] = str[size - 1 - i];
str[size - 1 - i] = temp;
}
int left = 0, right = 0;
while(right < size){
while(right < size && str[right] != ' '){
++right;
}
if(right < size){
for(int i = 0; i < (right - left) / 2; i++){
char temp = str[left + i];
str[left + i] = str[right - 1 - i];
str[right - 1 - i] = temp;
}
++right;
left = right;
}
}
for(int i = 0; i < (size - left) / 2; i++){
char temp = str[left + i];
str[left + i] = str[size - 1 - i];
str[size - 1 - i] = temp;
}
return str;
}
};
Comments
Post a Comment