給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 (從0開始)。如果不存在,則返回 -1。
示例 1:
輸入: haystack = "hello", needle = "ll"
輸出: 2
移動 p1指標,直到 pn 所指向位置的字元與 needle 字串第乙個字元相等。
通過 p1,p2,curr_len 計算匹配長度。
如果完全匹配(即 curr_len == l),返回匹配子串的起始座標(即 p1 - l)。
如果不完全匹配,回溯。使 p1 = p1 - curr_len + 1, p2 = 0, curr_len = 0。
classsolution:
def strstr(self, haystack: str, needle: str) ->int:
l1,l2=len(haystack),len(needle)
if l2==0:
return
0 p1=0
while p1:
p2,length=0,0
while p1and haystack[p1]!=needle[0]:
#這裡p1小於兩個字串長度差值即可
p1+=1
while p1and p2and haystack[p1]==needle[p2]:
#這裡p1p1+=1p2+=1length+=1
if length==l2:
return p1-l2
p1=p1-p2+1 #
回溯return -1
每天一道演算法題系列二十四之實現strStr
public class strstr 暴力解法 我們去挨個匹配,比如說 qwertyqwerty 去匹配 tyqwe 首先我們先從q開始,往後面去進行匹配 q w e r t 等到t的時候,就開始判斷tyqwe是否在qwertyqwerty裡面 如果不對,就需要回到 qwertyqwerty 的最...
LeetCode 關於實現strStr
toc 實現 strstr 函式。給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。要討論字串haystack和字串needle三種長度比較的情況,不同的情況處理方式不一樣。當字串hay...
LeetCode 實現 歸檔一
編號 題名題解 難度更新狀態 1兩數之和 雜湊表簡單 2 兩數相加 鍊錶中等 3 無重複字元的最長子串 雜湊表中等 4 尋找兩個有序陣列的中位數 二分查詢困難5 最長回文子串 動態規劃中等 6 z 字形變換 字串中等 7 整數反轉 數學簡單 8 字串轉換整數 字串中等 9 回文數數學簡單 10正規表...