博客 / 詳情

返回

算法 - 字符串 - 反轉字符串中的單詞

力扣 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();
        
    }
}
user avatar kevinwan 頭像 meituanjishutuandui 頭像
2 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.