力扣 151題 反轉字符串中的單詞
給你一個字符串 s ,請你反轉字符串中 單詞 的順序。
單詞 是由非空格字符組成的字符串。s 中使用至少一個空格將字符串中的 單詞 分隔開。
返回 單詞 順序顛倒且 單詞 之間用單個空格連接的結果字符串。
注意:輸入字符串 s中可能會存在前導空格、尾隨空格或者單詞間的多個空格。返回的結果字符串中,單詞間應當僅用單個空格分隔,且不包含任何額外的空格。
示例 1:
輸入:s = "the sky is blue"
輸出:"blue is sky the"
示例 2:
輸入:s = " hello world "
輸出:"world hello"
解釋:反轉後的字符串中不能存在前導空格和尾隨空格。
示例 3:
輸入:s = "a good example"
輸出:"example good a"
解釋:如果兩個單詞間有多餘的空格,反轉後的字符串需要將單詞間的空格減少到僅有一個。
來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/reverse-words-in-a-string
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
解法:雙指針交換數組中的元素
class Solution {
public String reverseWords(String s) {
String[] strs = s.split(" ");
for(int i = 0; i < strs.length/2 ; i++){
String tmp = strs[i];
strs[i] = strs[strs.length-1-i];
strs[strs.length-1-i] = tmp;
}
StringBuilder sb = new StringBuilder();
for(String x : strs){
if(x.length()>0)
sb.append(x).append(" ");
}
return sb.substring(0, sb.length()-1).toString();
}
}