Java LeetCode151。文字列内の単語を逆にする

文字列を指定して、文字列内の各単語を1つずつ反転します。
注:
スペース文字は単語を形成しません。
入力文字列の前後に余分なスペースを含めることができますが、逆の文字を含めることはできません。
2つの単語の間に余分なスペースがある場合は、反転後の単語間のスペースを1つだけに減らします。
例1:
入力:「空は青い」
出力:「青は空」

再帰をためらうのは後ろから前に押すことです。このプロパティを使用して逆にすることができます

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(' ');


    }
}

おすすめ

転載: blog.csdn.net/sakura_wmh/article/details/113092433