天天看點

Java實作 LeetCode 151 翻轉字元串裡的單詞

151. 翻轉字元串裡的單詞

給定一個字元串,逐個翻轉字元串中的每個單詞。

示例 1:

輸入: “the sky is blue”

輸出: “blue is sky the”

示例 2:

輸入: " hello world! "

輸出: “world! hello”

解釋: 輸入字元串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。

示例 3:

輸入: “a good example”

輸出: “example good a”

解釋: 如果兩個單詞間有多餘的空格,将反轉後單詞間的空格減少到隻含一個。

說明:

無空格字元構成一個單詞。

輸入字元串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。

如果兩個單詞間有多餘的空格,将反轉後單詞間的空格減少到隻含一個。

進階:

請選用 C 語言的使用者嘗試使用 O(1) 額外空間複雜度的原地解法。

class Solution {
    public String reverseWords(String s) {
        String[] s1 = s.trim().split(" ");
        StringBuffer stringBuffer=new StringBuffer();
        for (int i=s1.length-1;i>=0;i--){
            if (s1[i].equals("")){
                continue;
            }
            stringBuffer.append(s1[i]);
            if (i>0){
             stringBuffer.append(" ");
            }
        }
        return stringBuffer.toString();
    }
}