文字列を指定して、文字列内の各単語を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(' ');
}
}