KMP字符串查找算法

关于 oc NSString 的 rangeOfString方法实现算法。

个人想法:(简单匹配算法)

例如: 有stringone 与string two两个字符串, 在stringone中查找stringtwo,那么先拿到string two的首字符, 然后遍历stringone,找到后记录位置为n, 然后拿到string two的第二个字符,与stringone 中 n+1的字符比较,

  • 如果相等,继续拿到n+2比较,一次类推,直至stringtwo字符串匹配完成。
  • 如果不相等,那么继续遍历stringone,找到下一个与stringtwo首字符相等的位置,进行上述操作。

在网上搜索到的方法 KMP

KMP字符串模式匹配 : 一种在一个字符串中定位另一个串的高效算法。
简单匹配算法的时间复杂度为O(m*n),而KMP算法,可以证明它的时间复杂度为O(m+n)。

具体 链接一、链接二、链接三

你可能感兴趣的:(KMP字符串查找算法)