当前位置: 代码迷 >> 综合 >> [leetcode]双指针 Implement strStr
  详细解决方案

[leetcode]双指针 Implement strStr

热度:71   发布时间:2023-10-12 10:05:07.0

Implement strStr

找到一个句子里面的字串
其实这题自己算是踩进一个大坑,总担心暴力不行。这题的主要考点:

  • first occurrence
  • 寻找的对象是字符串
    想了N久,感觉暴力可能会TLE,结果才发现自己多想,不过这个确实提醒了自己,对于字符串来说,暴力的解法是不会超时的,因为实际情况一般字符串不会存在很长很长的情况(说不定以后做题会打脸)。
    自己的解法
class Solution:def strStr(self, haystack, needle):""":type haystack: str:type needle: str:rtype: int"""if needle=="":return 0len_haystack=len(haystack)len_needle=len(needle)for i in range(len_haystack-len_needle+1):flag=Truefor j,n in enumerate(needle):if haystack[i+j]!=n:flag=Falsebreakif(flag):return ireturn -1

leetcode上好一点的代码
不用遍历,直接整个数组切出来作比较

class Solution:def strStr(self, haystack, needle):""":type haystack: str:type needle: str:rtype: int"""for i in range(len(haystack) - len(needle)+1):if haystack[i:i+len(needle)] == needle:return ireturn -1