翻轉句子中單詞的序列

題目

輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。句子中單詞以空格符隔開。爲簡單起見,標點符號和普通字母同樣處理。 
例如輸入「I am a student.」,則輸出「student. a am I」。java

解題

下面給出一種比較優的解題算法。算法

public class Solution {
    public String ReverseSentence(String str) {
        if( str == null || str.length()<=0)
            return str;
        char[] chs = str.toCharArray();
        int len = chs.length;
        int i = 0;
        String tmp = "";
        String result = "";
        while(i < len){
            if(chs[i] == ' '){ // 找到空格
                result = " " + tmp + result;// 加在result的前面 才能逆序
                tmp = "";
            }else{
                tmp = tmp + chs[i]; // 加在後面,保證原始順序
            }
            i++;
        }
        if(tmp.length()!=0){ // 最後一個單詞
            result = tmp + result;
        }
        return result;
    }
}
相關文章
相關標籤/搜索