三段式搞定KMP算法so eazy

让我们先看这样一道题:

光题目就让人头皮发麻,这道题的传统解法是这样的:

已经完全看不懂了吧quq,没事下面教大家用三段式轻松解决这类问题!

我们先列这样一个三段式表格:

S a b a a c
PM
next-1
next
  1. pm:重复对称的字母个数;
  2. next-1:初值为-1的next数组;
  3. next:初值为0的next数组(要求的);

首先先创建一个空的字母队列

然后把a拿进来,重复对称的字母个数是0;

a

S a b a a c
PM 0
next-1
next

再把第二个字母b拿进来,这时候是ab,重复的字母个数还是为0个;

ab

S a b a a c
PM 0 0
next-1
next

这时候把第三个字母a拿进来,这时候是aba,两个a关于b对齐,重复对称的字母就是a;

aba

 那么此时重复的字母个数是1个;

S a b a a c
PM 0 0 1
next-1
next

把第四个字母a拿进来,这时候字母a关于ba对称,重复对称的字母个数为1;

abaa

S a b a a c
PM 0 0 1 1
next-1
next

把第5个字母c拿进来,没有重复对称的字母了,个数为0;

abaac

S a b a a c
PM 0 0 1 1 0
next-1
next

next-1里面的数就是PM的数往右边整体挪一位;空的位置填上-1,如下表:

S a b a a c
PM 0 0 1 1 0
next-1 -1 0 0 1 1
next

next里面的数就是next-1里的数整体加一;

S a b a a c
PM 0 0 1 1 0
next-1 -1 0 0 1 1
next 0 1 1 2 2

那么next的函数值就求出来了:就是01122,是不是非常的eazy。OVO

相关推荐

  1. KMP算法

    2024-04-26 17:58:01       70 阅读
  2. KMP算法

    2024-04-26 17:58:01       57 阅读
  3. <span style='color:red;'>kmp</span><span style='color:red;'>算法</span>

    kmp算法

    2024-04-26 17:58:01      49 阅读
  4. <span style='color:red;'>KMP</span><span style='color:red;'>算法</span>

    KMP算法

    2024-04-26 17:58:01      55 阅读
  5. KMP算法

    2024-04-26 17:58:01       45 阅读
  6. <span style='color:red;'>KMP</span><span style='color:red;'>算法</span>

    KMP算法

    2024-04-26 17:58:01      63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 17:58:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 17:58:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 17:58:01       87 阅读
  4. Python语言-面向对象

    2024-04-26 17:58:01       96 阅读

热门阅读

  1. linux驱动开发中jiffies的使用

    2024-04-26 17:58:01       29 阅读
  2. Go语言中,两个比较流行的缓存库

    2024-04-26 17:58:01       36 阅读
  3. C++11中的std::function和std::bind

    2024-04-26 17:58:01       33 阅读
  4. 【无标题】

    2024-04-26 17:58:01       33 阅读
  5. <c++基础(6)>宏定义与函数的区别

    2024-04-26 17:58:01       33 阅读
  6. css 设置div阴影样式

    2024-04-26 17:58:01       29 阅读
  7. python绘制三维图

    2024-04-26 17:58:01       33 阅读
  8. uniapp——使用微信地址

    2024-04-26 17:58:01       29 阅读