试题
考点

数据结构-字符串-KMP

面5笔5

什么是KMP算法?

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

KMP就是是一种改进的字符串匹配算法。
我们都知道,普通的暴力是一位一位的挪动字符串并逐位比较,
这样的时间复杂度会达到 O ( n m ) O(nm)O(nm),非常不利。

而KMP则是通过比较操作的简化来优化时间复杂度,不是一位一位的移动,
而是不后退的一段一段的移动,有读者想问:这不会出现遗漏的错误么?
这时候,就需要用到一个移动数组next,KMP算法的核心部分就是next数组的应用,使其时间复杂度大大降低,达到 O ( n + m ) O(n+m)O(n+m)

评论
暂无评论

加载更多