主要观点总结
本文首先讲述了一位网友关于极越汽车offer的疑问,引出了KMP算法的话题。文章详细解释了KMP算法的应用场景、原理、核心思想和优化方法。KMP算法主要用于字符串匹配,通过利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。文章还介绍了KMP算法中next数组的作用和求解方法,以及匹配失败时的回退机制。
关键观点总结
关键观点1: 极越汽车offer的疑问
文章开头通过一位网友的疑问,引出极越汽车的相关话题,但主要内容并非关于汽车,而是转向KMP算法的解释。
关键观点2: KMP算法的应用场景
KMP算法主要用于字符串匹配,适用于需要快速匹配的场景。
关键观点3: KMP算法的原理和核心思想
KMP算法利用匹配失败后的信息,通过构建next数组,尽量减少模式串与主串的匹配次数,提高匹配效率。
关键观点4: KMP算法中的next数组
next数组在KMP算法中起到记录模式串中每个字符前面有多少字符和最开始的字符相同的作用,用于优化字符串匹配的过程。
关键观点5: KMP算法的优化方法
当模式串中的字符匹配失败时,通过回退机制跳过已经匹配过的字符,继续进行比较,提高匹配效率。
文章预览
一网友在网上问刚拿到极越的offer能去吗? 这是典型的只会蒙着头面试,不看新闻的结果,极越在2024年12月10日爆出“原地解散”的消息,都已经倒闭了还去干啥。 截至2024年11月份,极越汽车年内累计销量约为1.3万辆,而在11月份,极越的销量仅为2485台,这些刚买极越车的,售后咋搞,当然这也不是我关心的。 --------------下面是今天的算法题-------------- 这里我们来讲一下KMP算法, KMP 算法主要用于字符串匹配的,它的时间复杂度 O(m+n) 。 常规的字符串匹配我们一般都这样做,使用两个指针,一个指向主串,一个指向模式串,如果它俩指向的字符一样,它俩同时往右移一步,如果 它 俩指向的字符不一样,模式串的指针重新指向 它 的第一个字符,主串的指针指向 它 上次开始匹配的下一个字符,如下图所示。 我们看到当模式串和主串匹配失败的时候
………………………………