天天看點

算法面試真題詳解:翻轉字元串中的單詞

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

說明

單詞的構成:無空格字母構成一個單詞,有些單詞末尾會帶有标點符号

輸入字元串是否包括前導或者尾随空格?可以包括,但是反轉後的字元不能包括

如何處理兩個單詞間的多個空格?在反轉字元串中間空格減少到隻含一個

線上評測位址:

領扣題庫官網

樣例1:
輸入:  "the sky is blue"
        輸出:  "blue is sky the"
        
        樣例解釋: 
        傳回逐字反轉的字元串.           
樣例2:
輸入:  "hello world"
        輸出:  "world hello"
        
        樣例解釋: 
        傳回逐字反轉的字元串.           

題解:

public class Solution {
    /*
     * @param s: A string
     * @return: A string
     */
    public String reverseWords(String s) {
        // write your code here
        if(s.length() == 0 || s == null){
            return " ";
        }
        //按照空格将s切分
        String[] array = s.split(" ");
        StringBuilder sb = new StringBuilder();
            //從後往前周遊array,在sb中插入單詞
        for(int i = array.length - 1; i >= 0; i--){
            if(!array[i].equals("")) {
                if (sb.length() > 0) {
                    sb.append(" ");
                }
                
                sb.append(array[i]);
            }
        }
        return sb.toString();
    }
}
           

更多題解參考:

九章官網solution

繼續閱讀