子串次数——类似KMP

老规矩 先来看问题 字符串a 在A中出现了多少次

求次数 。

当然有很多种算法 最简单的 一个一个找呗 不过这种太麻烦 我们不讲这种

我在写这个算法的时候 用到了KMP算法的部分内容

public static void Getnext(int next[],char[] t)
  {
    int j=0,k=-1;
    next[0]=-1;
    while(j上面这段就借鉴了(有改动) (其余都是原创)当然 这里最难理解的就是这段    相信你如果能很透彻的理解这一段  下面的代码对你就是小儿科。我就不举例说明这段代码的作用了  这段代码是求某段字符串和从总字符串的开头的相识度的  也就是有几个字符是连续重复的。记住  必须是连续着的相同   我们不是要求子串在母串中出现的次数吗   我们这里能求出从开头开始的相识度    那这样理解  如果开头就是我们的子串  那么 是不是就好办了    主要讲解就到这这里  具体方法看代码      提示一下    要考虑到母串开头就是只要两者的有个子串的情况    个人认为这样算会比暴力破解的方法好点当然还可以进行改进   可以在求相识度的过程中就得出次数   有兴趣的可以对代码进行改进或重新编码尝试一下。

代码就在这里

如果哪位发现有什么问题 或不对的地方 烦请予以指正。

Original: https://www.cnblogs.com/cndccm/p/12508659.html
Author: Mr小明同学
Title: 子串次数——类似KMP

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/710733/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球