leetcode 實現 strStr 函式。

2022-09-01 07:30:08 字數 851 閱讀 6493

給定乙個 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。

class

solution:

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正規表...