博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1961 KMP
阅读量:4975 次
发布时间:2019-06-12

本文共 872 字,大约阅读时间需要 2 分钟。

链接:

题意:

给你一个字符串,求这个字符串到第i个字符为止的循环节的次数。

比如aabaabaabaab,长度为12.到第二个a时,a出现2次,输出2.到第二个b时,aab出现了2次,输出2.

到第三个b时,aab出现3次,输出3.到第四个b时,aab出现4次,输出4.

题解:

在2406的外面套一层循环就可以了

代码:

31 char s[MAXN];32 int Next[MAXN];33 34 void buildNext(char P[]) {35     int m = strlen(P);36     int i = 0, j;37     j = Next[0] = -1;38     while (i < m) {39         while (-1 != j && P[i] != P[j]) j = Next[j];40         Next[++i] = ++j;41     }42 }43 44 int main() {45     int n;46     int cas = 1;47     while (cin >> n, n) {    48         scanf("%s", s);49         memset(Next, 0, sizeof(Next));50         cout << "Test case #" << cas++ << endl;51         buildNext(s);52         rep(i, 2, n + 1)  if (Next[i] > 0 && i % (i - Next[i]) == 0)53             cout << i << ' ' << i / (i - Next[i]) << endl;54         cout << endl;55     }56     return 0;57 }

 

转载于:https://www.cnblogs.com/baocong/p/6790076.html

你可能感兴趣的文章
基本SCTP套接字编程常用函数
查看>>
C 编译程序步骤
查看>>
页面抓取匹配时,万恶的\r,\n,\t 要先替换掉为空,出现匹配有问题,都是这个引起的...
查看>>
利用Node.js调用Elasticsearch
查看>>
构造函数
查看>>
LeetCode N-Queens
查看>>
jstat 命令
查看>>
leetcode[155]Min Stack
查看>>
《代码不朽:编写可维护软件的10大要则(C#版)》读后感
查看>>
04、我的.net Core的学习 - 网页版Hello World
查看>>
分块学习
查看>>
UIWebView 屏蔽或者修改 alert警告框
查看>>
Qt-第一个QML程序-3-自定义一个按钮
查看>>
分布式系统事务一致性解决方案
查看>>
树梅派中文输入法支持
查看>>
[Git] 005 初识 Git 与 GitHub 之分支
查看>>
使用Analyze 和Instruments-Leaks分析解决iOS内存泄露
查看>>
Vue.js的入门
查看>>
【自定义异常】
查看>>
pip install 后 importError no module named "*"
查看>>