1. 程式人生 > >單詞反轉

單詞反轉

每一個 words stat 字符 system ray char 一個 pri

思路:

實現字符串首尾反轉 即對how are you 全反轉 uoy era woh
再對每一個單詞進行單獨反轉 (每讀取到 ‘ ‘ 即對前面的字符串進行反轉一次)
因為最後一個單詞的後面沒有 ‘ ‘ 所以需要單獨反轉


//數組中只有一個數組出現過1次,其他的都出現了3次
public class s {
    //把數組首尾元素交換
    public void swap(char[] cArr,int front,int end) {
        while(front<end) {
            char tmp=cArr[end];
            cArr[end]=cArr[front];
            cArr[front]=tmp;
            front++;
            end--;
        }
    }
    public String swapWords(String s) {
        //對how are you 全反轉 uoy era woh
        char[] cArr=s.toCharArray();
        swap(cArr,0,cArr.length-1);
        //對 當個單詞進行反轉 uoy - you; era - are ; woh -how(找不到 ‘ ‘  無法反轉)
        int begin=0;
        for(int i=1;i<cArr.length;i++) {
        if(cArr[i]==‘ ‘) {
            swap(cArr,begin,i-1);
            begin=i+1;
        }
    }
        //所以要把最後一個單詞單獨反轉 woh -how
    swap(cArr,begin,cArr.length-1);
    return new String(cArr);
    }
    public static void main(String[] args) {
        String str="how are you";
            System.out.println(new s().swapWords(str));
    }

}

單詞反轉