hdu 3746 Cyclic Nacklace(kmp)
2016-05-14 11:14
309 查看
传送门
#include <stdio.h> #include <string.h> char s[100010]; int next[100010]; int main() { int T,i,j,len,length; scanf("%d",&T); while(T--) { scanf("%s",s); len = strlen(s); i = 0; j = -1; next[0] = -1; while(i < len)//获得next数组 { if(j == -1 || s[i] == s[j]) { ++i; ++j; next[i] = j; } else j = next[j]; } length = len - next[len];//循环节长度 if(len != length && len%length == 0)//如果字符串是循环的 printf("0\n"); else printf("%d\n",length - next[len]%length);//取模作用,如:abcab,去掉abc } return 0; }
相关文章推荐
- Spring MVC静态资源处理<mvc:resources><mvc:default-servlet-handler>
- SDAU 练习三 1007 天上掉馅饼问题
- 各分辨率图片生成神器
- 软考二进宫-总结知识点2
- hdu 1213 How Many Tables
- ElasticSearch 攻略(一)
- 2016“百度之星”-测试赛
- getBackground().setAlpha所导致问题
- Beaver's Calculator 【归并排序+贪心】
- 手机开发实战17——CSD与GPRS的比较
- ArrayList源码分析
- 数据库中间件的收集
- 如何自学Android
- jQuery基于扩展实现的倒计时效果
- Flume快速入门(一):背景简介
- Mainfest.xml文件的初步解析
- 论strpos 的正确使用方式
- uva10816 Travel in Desert(MST + 最短路)
- 面向对象学习记录(一)
- android练习