28. 实现 strStr()
一般解法:暴力匹配 时间复杂度 O(m*n)
这里介绍了 KMP 算法: 如果遇到某位不匹配的时候,KMP 算法不是从头移动,而是跳到之前匹配的内容;这里要用前缀表f的前面找到与其导前缀下向再开始匹配,前缀铃包含首字母
不包含尾子母的所有子串,要求最长相等前后缀,前缀表是这个最长相等前后缀的数量的数组,跳到2的位置进行匹配,恰好是前缀表对应的数,遇见冲突的时候,要向前回退;
。。。KMP算法的代码实现,太忙了暂时没时间看了,之后有空再看
字符串总结:
这里有几个练习和算法的总结:
1. 双指针法:用双指针法来进行移除操作、删除重复项等操作,这是处理字符串的常用方法
双指针总结:
双指针体现了效率的优势:替换空格,解决N数之和的问题, 用两个指针向中间逼近的方式,来解决在一个for循环下完成两个for循环的部分