LeetCode28-實現strStr()
阿新 • • 發佈:2018-12-08
昨天晚上睡覺前逛知乎時,發現我開設的這個LeetCode刷題專欄突然之間暴增了四十多號人,說實話,當時很激動了,因為覺得自己每天寫的東西被大家肯定了,被相信的感覺還是挺好的。另外又覺得身上的責任感又重了一些,因為大家相信你,如果你寫的東西將大家帶入了歧途,那這真是罪過了。尤其是昨天和一筆友交流演算法時,他給我提建議說:我以後貼的程式碼可以多加些註釋,這樣大家看起來就不會暈了,尤其是當你的程式碼比較多時。我覺得很有道理,各位筆友願意抽出時間來看我寫的東西,我覺得得對得起大家,所以我以後會盡可能的將我的程式碼寫詳細些。
28-實現strStr()
實現 strStr() 函式。
給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。
示例 1:
輸入: haystack = "hello", needle = "ll"
輸出: 2
示例 2:
輸入: haystack = "aaaaa", needle = "bba"
輸出: -1
說明:
當 needle
是空字串時,我們應當返回什麼值呢?這是一個在面試中很好的問題。
對於本題而言,當 needle
是空字串時我們應當返回 0 。這與C語言的 strstr() 以及 Java的 indexOf() 定義相符。
這一題我覺得很很很簡單了,在python中直接用str.index()這個方法就可查找出needle子串在haystack母串中出現的位置,需要注意的就是如果haystack母串中沒有needle子串,那麼用index()方法此時就會報錯,所以用個if條件語句判斷一下就行了。
程式碼如下:
class Solution: # 直接採用index()方法可查找出needle子串在haystack子串中出現的位置 def strStr(self, haystack, needle): """ :type haystack: str :type needle: str :rtype: int """ if needle is None: return 0 if needle in haystack: return haystack.index(needle) else: return -1 if __name__ == "__main__": haystack = "aaaaaa" needle = "bba" loc = Solution().strStr(haystack, needle) print(loc)
執行效率也是沒得話說了,在90%以上。