当前位置:网站首页>leetcode3、實現 strStr()

leetcode3、實現 strStr()

2022-07-06 01:41:00 東方不敗就是我

實現 strStr() 函數。

給你兩個字符串 haystack 和 needle ,請你在 haystack 字符串中找出 needle 字符串出現的第一個比特置(下標從 0 開始)。如果不存在,則返回  -1 。

說明:

當 needle 是空字符串時,我們應當返回什麼值呢?這是一個在面試中很好的問題。

對於本題而言,當 needle 是空字符串時我們應當返回 0 。這與 C 語言的 strstr() 以及 Java 的 indexOf() 定義相符。

示例 1:

輸入:haystack = "hello", needle = "ll"
輸出:2
示例 2:

輸入:haystack = "aaaaa", needle = "bba"
輸出:-1
 

提示:

1 <= haystack.length, needle.length <= 104
haystack 和 needle 僅由小寫英文字符組成

個人解答

方法一:

def strStr(str1,str2):
    return str1.find(str2)
str1="hello"
str2="ll"
print(strStr(str1,str2))
這個解答用了字符串內置的函數,太投機取巧。
 

方法二:
class Solution:
    
    def strStr(self,str1,str2):
        i=0
        while(i<len(str1)):
            if((str1[i:i+len(str2)])==str2):
                return i
            else:
                i=i+1        
        else:
            return -1

自己思路,采用切片方法。(是之前回文串時候的思路,由此可見,就算題做完,也一定要review,對以後做題有好處。)

 官方解答

沒錯,我用的是暴力匹配,但KMP是什麼?

 

原网站

版权声明
本文为[東方不敗就是我]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060136260784.html