1. 程式人生 > 其它 >Java LeetCode 151. 翻轉字串裡的單詞

Java LeetCode 151. 翻轉字串裡的單詞

技術標籤:LeetCode

給定一個字串,逐個翻轉字串中的每個單詞。
說明:
無空格字元構成一個 單詞 。
輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含一個。
示例 1:
輸入:“the sky is blue”
輸出:"blue is sky the"

猶豫遞迴是從後往前推,可以利用這個性質,進行反轉

class Solution {
    public String reverseWords(String s) {
        StringBuilder strs = new
StringBuilder(); rev(s,0,strs); return strs.toString().trim(); } public void rev(String s,int left,StringBuilder sss){ while(left<s.length()&&s.charAt(left)==' '){ left++; } if(left==s.length()){ return; } int
right = left; while(right<s.length()&&s.charAt(right)!=' '){ right++; } rev(s,right,sss); sss.append(s,left,right).append(' '); } }