文章目录
一、字符串查找
二、Rabin-Karp 算法
一、字符串查找
----
算法题目链接 : https://www.lintcode.com/problem/13/
在 一个字符串 中查找 另外一个字符串..., 那面试基本就凉了 ; 暴力算法的复杂度是
O(m \times n)
,
m
是第一个大字符串的长度 ,
n
是被查找的字符串长度 ;
KMP 算法 是专门用于解决该问题的算法 , 该算法...只能用于解决在一个字符串中查找另外一个字符串的问题 ; KMP 算法主要靠背诵 , 没有涉及到算法的理论 , 只能用于解决单一字符串查找问题 , 一般面试时不考虑使用该算法 ; KMP 算法的算法复杂度是...O(m + n)
;
Rabin-Karp 算法 比 KMP 算法更简单 , 其基本原理就是比较字符串的 哈希码 ( HashCode ) , 快速的确定子字符串是否等于被查找的字符串 ;
二、Rabin-Karp...算法
----
假设要在 “abcde” 字符串中 , 寻找字符串 “cde” ;
遍历时 , 如果使用蛮力算法遍历 , 先对比 “abc” 是否与 “cde” 相等 , 明显不等 ,
继续遍历 ,