輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。句子中單詞以空格符隔開。爲簡單起見,標點符號和普通字母同樣處理。
例如輸入「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; } }