【Leetcode_總結】28. 實現strStr() - python
阿新 • • 發佈:2018-12-15
連結:https://leetcode-cn.com/problems/implement-strstr/description/
Q:
實現 strStr() 函式。
給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。
示例 1:
輸入: haystack = "hello", needle = "ll" 輸出: 2
示例 2:
輸入: haystack = "aaaaa", needle = "bba" 輸出:-1
思路:對於字串,這是一個類似於查詢或者匹配的問題,不使用index()等庫函式的話,我使用雙指標完成操作,對於fast指標,如果haystack [fast] == needle[0] 那麼slow = fast,fast+=len(needle) 如果 haystack[slow:fast] == needle 則返回slow 否則繼續遍歷,程式碼如下:
class Solution(object): def strStr(self, haystack, needle): """ :type haystack: str :type needle: str :rtype: int """ if not (needle in haystack): return -1 if needle == "": return 0 fast = 0 lens = len(needle) while(fast < len(haystack)): if haystack[fast] == needle[0]: slow = fast fast += lens if haystack[slow:fast] == needle: return slow else: fast = slow+1 else: fast+=1 return -1