[leetcode][python]151. 翻轉字符串裏的單詞

背景:

這也是面試百度過程中的其中一題,題目非常簡單,但是問題的難點不在於解法,而在於優化。

先寫最簡單的解法。

題目:

給定一個字符串,逐個翻轉字符串中的每個單詞。

示例 1:

輸入: "the sky is blue"
輸出: "blue is sky the"
示例 2:

輸入: "  hello world!  "
輸出: "world! hello"
解釋: 輸入字符串可以在前面或者後面包含多餘的空格,但是反轉後的字符不能包括。
示例 3:

輸入: "a good   example"
輸出: "example good a"
解釋: 如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含一個。
 

說明:

無空格字符構成一個單詞。
輸入字符串可以在前面或者後面包含多餘的空格,但是反轉後的字符不能包括。
如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含一個。
 

進階:

請選用 C 語言的用戶嘗試使用 O(1) 額外空間複雜度的原地解法。

 

簡單解法:

class Solution(object):
    def reverseWords(self, s):
        """
        :type s: str
        :rtype: str
        """
        w_list = []
        for eve_w in s.split(" "):
            if eve_w:
                w_list.append(eve_w)
        return " ".join(reversed(w_list))

執行結果:

通過

執行用時 :24 ms, 在所有 Python 提交中擊敗了68.79%的用戶

內存消耗 :13.6 MB, 在所有 Python 提交中擊敗了50.00%的用戶

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章