zoukankan      html  css  js  c++  java
  • 28. Implement strStr()

    Implement strStr().

    Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

    1

    1 class Solution(object):
    2     def strStr(self, haystack, needle):
    3         """
    4         :type haystack: str
    5         :type needle: str
    6         :rtype: int
    7         """
    8         return haystack.find(needle)

    2 brute force

    class Solution(object):
        def strStr(self, haystack, needle):
            """
            :type haystack: str
            :type needle: str
            :rtype: int
            """
            result = -1
            l_needle = len(needle)
            l_haystack = len(haystack)
            if l_needle == 0 and l_haystack == 0:
                return 0
            if l_haystack == 0 and l_needle!=0:
                return result    
            if l_needle == 0 :
                return 0
            for index in range(l_haystack):
                if l_haystack - index  >= l_needle and needle == haystack[index:index+l_needle]:
                    result = index
                    break
            return result 

     3 hash 有待改进

    class Solution(object):
        def strStr(self, haystack, needle):
            """
            :type haystack: str
            :type needle: str
            :rtype: int
            """
            result = -1
            l_needle = len(needle)
            l_haystack = len(haystack)
            if l_needle == 0 and l_haystack == 0:
                return 0
            if l_haystack == 0 and l_needle!=0:
                return result    
            if l_needle == 0 :
                return 0
            if l_needle>l_haystack:
                return result
            hash_needle=hash(needle)
            list_haystack=[]
            for index in range(l_haystack):
                if index<=(l_haystack-l_needle):
                    list_haystack.append(hash(haystack[index:index+l_needle]))
            result=list_haystack.index(hash_needle) if hash_needle in  list_haystack else -1 
            return result 
  • 相关阅读:
    b_lc_数组的最大公因数排序(并查集+质因数分解优化)
    Coggle 30 Days of ML:结构化赛题:天池二手车交易价格预测(二)
    Coggle 30 Days of ML:结构化赛题:天池二手车交易价格预测(一)
    漫谈
    漫谈
    漫谈
    漫谈
    漫谈
    漫谈
    漫谈
  • 原文地址:https://www.cnblogs.com/rocksolid/p/6244541.html
Copyright © 2011-2022 走看看