LeetCode 第十二題反轉字符串傳輸門:LeetCode012 : 反轉字符串
今天給你們分享的是LeetCode 數組與字符串 第十三題:反轉字符串中的單詞 III,爲面試而生,期待你的加入。python
「Use the utility in the API is recommended in the project. But if you use it in an interview, you will definitely fail .」
給定一個字符串,你須要反轉字符串中每一個單詞的字符順序,同時仍保留空格和單詞的初始順序。面試
輸入: "Let's take LeetCode contest" 輸出: "s'teL ekat edoCteeL tsetnoc"
在字符串中,每一個單詞由單個空格分隔,而且字符串中不會有任何額外的空格。數組
這個題目,看到第一眼,感受有點難,我一看到題目,還覺得是一個字符串裏有英文單詞,只用識別英文單詞,而後把英文單詞逆轉就好,後來仔細一看,是一段只由英文單詞和空格組成的字符串,這樣的話,就簡單了不少,具體思路以下圖所述:圖片微信
1.快捷的方法:markdown
時間複雜度:O(n)
畢竟仍是得把每一個單詞都遍歷一遍~app
class Solution(object): def reverseWords(self, s): """ :type s: str :rtype: str """ # 根據空格,把字符串分隔開 r_list = s.split(" ") # 把列表每一個單詞字符串逆轉 for i in range(len(r_list)): r_list[i] = r_list[i][::-1] # 用 「 」 鏈接列表的每一個單詞 result_s = " ".join(r_list) return result_s
(1)切片/join操做,前一篇Python小知識 | 這些技能你不會?(一)有較詳細介紹。ide
(2)split函數介紹
Python split((str, num) 經過指定分隔符對字符串進行切片,若是參數 num 有指定值,則僅分隔 num 個子字符串。
參數介紹:函數
str -- 分隔符,默認爲全部的空字符,包括空格、換行(\n)、製表符(\t)等。 num -- 分割次數。
(3)提交結果學習
提交結果測試
測試數據:30組
運行時間:32ms
擊敗人百分比:94.56%
2.本身動手,豐衣食足?
遍歷,分組都本身動手實現
時間複雜度:O(n)
class Solution1(object): def reverseWords(self, s): """ :type s: str :rtype: str """ # 根據空格,把字符串分隔開 s = s + ' ' r_list = [] word = '' flag = 0 for i in s: if i != " ": word = word + i flag = 1 else: if flag == 1: r_list.append(word) word = '' flag = 0 # 把列表每一個單詞字符串逆轉 for i in range(len(r_list)): r_list[i] = self.reverseString(r_list[i]) # 用 「 」 鏈接列表的每一個單詞 result_s = '' for i in range(len(r_list)): if i == len(r_list)-1: result_s = result_s + r_list[i] break result_s = result_s + r_list[i] + " " return result_s # leetcode12中本身實現字符串逆轉 def reverseString(self, s): """ :type s: str :rtype: str """ result = list(s) for i in range(len(result)//2): temp = result[len(result)-i-1] result[len(result)-i-1] = result[i] result[i] = temp return ''.join(result)
測試數據:30組
運行時間:204ms
擊敗人百分比:2.89%
雖然beat的人很少,但我有想法,我驕傲啊~
感受很酷,感受很努力,現實很殘酷,有沒有這種感受?
昨天立冬,天氣是真的變冷了,你們要記得多穿衣服,別感冒哦~
不要忘記學習,不要忘記學習,不要忘記學習。
最近廣告[互推和廣告]有點多,乾貨比較少,但願你們諒解,說幾點感悟:
第一,互推,爲了公衆號能越作越好,必不可少的,我的的能力有限,不能每一篇文章都是爆文,因此見諒,並且我通常互推也都是python公衆號,都是作公衆號認識的朋友,因此才誠心推薦給你們的;
第二,接商業廣告,學生黨,花時間運營公衆號不簡單,作一篇推文可能花的5,6個小時,剛開始花兩三天也是常有的事,生活不易,有合適的,不錯的廣告商,每個廣告商我都是深刻了解了的,至少沒有騙錢圈錢的機構,這樣賺點生活費,我以爲不爲過吧;
第三,關於文末雞腿,點贊,轉發,留言的事情,的確少的可憐,因此但願你們之後點開推文多幫幫忙,點一下,你們多互動,個人學習積極性也高些,可能這篇推文你學到的不多,說不定下篇就能學不少了呢?
第四,交流羣,目前主要我一我的管理,還有一個研二的學長幫忙看一個羣,忙不過來,回答你們問題慢了,也不要見怪,想加羣的加我微信:zs820553471。
但願多多支持,在公衆號上,要是說100%的心,我只能給你們50%,這50%無私分享學習,交流,剩下的50%,怪我,被利益和生活燻黑了。
堅持 and 努力 : 終有所獲。
END
往期精彩
LeetCode012:反轉字符串
從00-90後的微信暱稱,發現以下規律。。。
用python對你的微信進行騷操做
爬取《悲傷逆流成河》貓眼信息 | 郭敬明五年電影最動人之做
進學習交流羣
不失聯,掃碼加X先生微信學習交流
舒適提示
歡迎你們轉載,轉發,留言,點贊支持X先生。
文末廣告點一下也是對X先生莫大的支持。
作知識的傳播者,隨手轉發。
▼
更多精彩推薦,請關注咱們
▼攢點錢買棉衣