Day3 Implement strStr()

LeetCode28 Implement strStr()


Implement strStr().

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

Example 1:

Input: haystack = "hello", needle = "ll"
Output: 2

Example 2:

Input: haystack = "aaaaa", needle = "bba"
Output: -1

思路:首先找到needle有可能出现的起始位置,然后再看从起始位置处开始,后面的needle是否吻合,需要记录的是吻合的字符串的长度,当长度达到needle的长度的时候,立即返回。如果在检查的过程中有一个字母不吻合就可以重新查找初始位置了。值得注意的是,如果needle的长度为0,应该返回0。


用时略多,为了做一些简化,我们可以这样思考,当我们查看haystack中的所有字符时,如果未被查看的长度已经小于needle了,那么剩下的字符串绝对不可能与needle匹配了。



另外一种算法是kmp算法,kmp本身就是一种高效的字符串匹配的方法,虽然在这道题里和上面改进的暴力解速度差不多。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值