186.Reverse Words in a String II
1 3Step
class Solution {
public void reverseWords(char[] str) {
//Step 1, reverse the whole str;
reverse(str, 0, str.length - 1);
//Step 2 reverse middle part
int start = 0;
for(int i = 0; i < str.length; i++){
if(str[i] == ' '){
reverse(str, start, i - 1);
start = i + 1;
}
}
//Step 3 reverse last word
reverse(str, start, str.length - 1);
return;
}
public void reverse(char[] s, int left, int right){
while(left < right){
char tmp = s[left];
s[left] = s[right];
s[right] = tmp;
left++;
right--;
}
return;
}
}