Java LeetCode 151. 翻轉字串裡的單詞
阿新 • • 發佈:2021-01-25
技術標籤: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(' ');
}
}