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 
  • 相关阅读:
    p5js弹钢琴
    javascript——拖拽(完整兼容代码)
    js正则表达式和replace
    CSS最常用和实用的技巧
    优化MYSQL数据库的方法
    css默认样式
    javascript之document对象
    常见JS(JavaScript)冲突解决方法
    String对象中的正则表达式
    css去掉a标签点击后的虚线框
  • 原文地址:https://www.cnblogs.com/rocksolid/p/6244541.html
Copyright © 2011-2022 走看看