1. 程式人生 > >劍指offer——反轉單詞順序列

劍指offer——反轉單詞順序列

劍指offer——反轉單詞順序列

問題描述

牛客最近來了一個新員工Fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是“I am a student.”。Cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?

思路分析

1.先判斷輸入字串是否為空,若是,則返回這個字串。由於此題中英語句子單詞間是以空格分割,可使用trim()方法來進行判斷。trim()方法返回去掉前後空白字元的字串物件。
2.用split()方法,將字串按空格切割。
3.將切割後的每一部分存入陣列。
4.反向輸出陣列中的元素。每輸出一個元素就輸出一個空格,直到最後一個元素結束,不用輸出空格。
如: str=" I am a student."

   I am a student.
   陣列strs={"I","am","a","student."}
   建立一個字串s來接收陣列中元素,s="student. a am I"

程式碼

public class Solution {
    public String ReverseSentence(String str) {
         if (str.trim().length() == 0) {
              return str;
         }
         String[] strs = str.split("\\s");
         String s =
""; for (int i = strs.length - 1;i >= 0;i--) { if (i != 0) { s += strs[i] + " "; } else { s += strs[i]; } } return s; } }