1. 程式人生 > >LeetCode題目--實現strStr() (python實現)

LeetCode題目--實現strStr() (python實現)

題目

實現 strStr() 函式。

給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回  -1

示例 1:

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

示例 2:

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

說明:

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

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

python程式碼實現:

 

 

class Solution:
    def strStr(self, haystack, needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """
        i=0
        j=0
        if needle == "":
            return 0
        elif needle not in haystack:
            return -1
        if needle in haystack:
            l1=len(haystack)
            l2= len(needle)
            while i<l1 and j<=l2:
                if haystack[i] == needle[j]:
                    i+=1
                    j+=1
                else:
                    i=i-j+1
                    j=0
                if j==l2:

                    return i-l2