当前位置:网站首页 > 技术博客 > 正文

求next数组值

串'ababaaababaa'的next

数组

为:-1 0 0 1 2 3 1 1 2 3 4 5

next

val 数组

可由next

数组

得,具体

法如下:

 string s = "ababaaababaa"; vector<int> next(s.size()), next val (s.size()); next[0] = -1; int j = -1; for (int i = 1; i < s.size(); i++) { while (j != -1 && s[i] != s[j + 1]) { j = next[j]; } if (s[i] == s[j + 1]) { j++; } next[i] = j; } for (int i = 0; i < s.size(); i++) { if (next[i] == -1 || s[i] != s[next[i]]) { next val [i] = next[i]; } else { next val [i] = next val [next[i]]; } } 

其中,next

数组

求解

采用了

KMP

算法的思想,next

val 数组

求解

则是在next

数组

的基础上进行的。

  • 上一篇: o1bz线路2
  • 下一篇: vc2010运行库官方下载
  • 版权声明


    相关文章:

  • o1bz线路22025-06-11 07:01:03
  • rsa加密算法java实现2025-06-11 07:01:03
  • easyn软件下载2025-06-11 07:01:03
  • http转发dns2025-06-11 07:01:03
  • 协程是什么意思2025-06-11 07:01:03
  • vc2010运行库官方下载2025-06-11 07:01:03
  • oracle 视图2025-06-11 07:01:03
  • oracle左连接和右连接的区别2025-06-11 07:01:03
  • open vswitch配置2025-06-11 07:01:03
  • 图像滤波的基本原理2025-06-11 07:01:03