【劍指offer較難部分17】翻轉單詞順序列(java)
阿新 • • 發佈:2021-01-25
技術標籤:劍指offer(java)
題目描述
牛客最近來了一個新員工Fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是“I am a student.”。Cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?
分析
可分兩步:
1、用spilt將輸入字串的子字串組成一個數組,然後再首位調換順序
2、將調換順序的陣列中字串重新連線起來
程式碼如下:
public class Solution {
public String ReverseSentence(String str) {
//第一步:將字串按照空格分隔出字串陣列,並交換順序
String[] childStr = str.split(" ");
//排除str為" "(含多個空格字串情況)
if(childStr.length == 0){
return str;
}
for(int i = 0,j = childStr.length - 1 ; i < childStr. length/2 ; i++,j--){
String temp = childStr[i];
childStr[i] = childStr[j];
childStr[j] = temp;
}
//第二步:將陣列中字串組合
String res = "";
for(int k = 0 ; k < childStr.length ; k++){
if(k != childStr.length - 1){
String temp1 = childStr[k] + " ";
res += temp1;
}else{
res += childStr[k];
}
}
return res;
}
}