1. 程式人生 > >Leetcode做題日記:28. 實現strStr()(PYTHON)

Leetcode做題日記:28. 實現strStr()(PYTHON)

實現 strStr() 函式。
給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。
示例 1:
輸入: haystack = “hello”, needle = “ll”
輸出: 2

示例 2:
輸入: haystack = “aaaaa”, needle = “bba”
輸出: -1

第一次的程式碼,只擊敗27.76%
上來先把h n打上來,可以少打很多字母,前面幾個if 是為了判斷幾個特殊的例子。遍歷h,如果發現和n中第一個字母相同的字母,標記為i,則表明有可能再h中存在n,所以開始從i開始到n的長度的字串依次比較,如果都相同就滿足題意,不相同就i=i+1

其實關於i的迭代,我最初的想法是

i=i+j

即如果這個片段不是的話,i從下一段開始,但是萬一n是‘ippip…’,就會錯過

        h=haystack
        n=needle
        L1=len(h)
        L2=len(n)
        i=0
        j=0
        if L1==0 and L2==0:
            return 0
        if  L1<L2 :
            return -1
        if L2==0:
            return 0
        while
i <L1: if h[i]== n[0] : while j<L2: if i+j==L1:#如果h都到頭了還沒找完n,返回-1 return -1 if h[i+j] !=n[j]: break j=j+1#判斷相符的個數 if j==
L2: return i j=0 #寫在最後也行,然後i=i+1 i=i+j+1 return -1