1. 程式人生 > 其它 >【劍指offer較難部分17】翻轉單詞順序列(java)

【劍指offer較難部分17】翻轉單詞順序列(java)

技術標籤:劍指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; } }

在這裡插入圖片描述