28.实现 strStr() (本题可以跳过)
因为KMP算法很难,大家别奢求一次就把kmp全理解了,大家刚学KMP一定会有各种各样的疑问,先留着,别期望立刻啃明白,第一遍了解大概思路,二刷的时候,再看KMP会好懂很多。
或者说大家可以放弃一刷可以不看KMP,今天来回顾一下之前的算法题目就可以。
因为大家算法能力还没到,细扣很难的算法,会把自己绕进去,就算别人给解释,只会激发出更多的问题和疑惑。所以大家先了解大体过程,知道这么回事,等自己有算法基础和思维了,在看多看几遍视频,慢慢就理解了。
题目链接/文章讲解/视频讲解:https://programmercarl.com/0028.%E5%AE%9E%E7%8E%B0strStr.html
在一个串中查找是否出现过另一个串,这是KMP的看家本领。
就是我想的是,其实要用前缀表的意思就是说,唉,我这个模式串里面正好有前后缀相等的时候,那等我匹配到这字母进行不下去的时候,我就可以直接告诉你,‘哎,前面有一部分和我现在相等了嗷,就算返回也别返回那么多啦,省点功夫哈’,差不多是这么个意思吧。
上述为kmp算法的知识点讲解,不记得的时候就去重新看一下。
挺难且不熟,建议重刷
459.重复的子字符串(本题可以跳过)
本题算是KMP算法的一个应用,不过对KMP了解不够熟练的话,理解本题就难很多。
我的建议是KMP和本题,一刷的时候,可以适当放过,了解怎么回事就行,二刷的时候再来硬啃
题目链接/文章讲解/视频讲解:https://programmercarl.com/0459.%E9%87%8D%E5%A4%8D%E7%9A%84%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2.html
移动匹配
KMP算法
这个题目用的这个方法真的亿点点玄妙,反正就是那种等量替换,a = b, b = c,所以a = c的感觉,神奇,需要多练。
关于*、&的使用问题:
字符串总结
比较简单,大家读一遍就行
题目链接/文章讲解:https://programmercarl.com/%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%80%BB%E7%BB%93.html
搜嘎,所以C是没有string的用法的。
双指针回顾
此时我们已经做过10到双指针的题目了,来一起回顾一下,大家自己也总结一下双指针的心得
文章讲解:https://programmercarl.com/%E5%8F%8C%E6%8C%87%E9%92%88%E6%80%BB%E7%BB%93.html