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;
    }
}

results matching ""

    No results matching ""