码迷,mamicode.com
首页 > 其他好文 > 详细

SDUTOJ 2475 Power Strings

时间:2014-10-21 01:06:37      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:kmp算法..

bubuko.com,布布扣
<pre class="cpp" name="code">#include<iostream>
#include<stdio.h>
#include<string.h>
#define N 1000005
int next[N];
char s[N];
using namespace std;
void getnext(char s[])//KMP算法的应用
{
	int j=-1,i=0,len;
	next[0]=-1;
    len=strlen(s);
	while(i<=len)
	{
		if(j==-1||s[i]==s[j])
		{
			++i;
			++j;
			next[i]=j;
		}
		else
		    j=next[j];
	}
}
int main()
{
	int len;
	while(cin>>s)
	{
		if(s[0]=='.')
		{
			break;
		}
		len=strlen(s);
		getnext(s);
	    if(len%(len-next[len])==0)
			cout<<(len/(len-next[len]))<<endl;//求最小循环节..其实题意就是这个意思
	}
	return 0;
}



SDUTOJ 2475 Power Strings

标签:kmp算法..

原文地址:http://blog.csdn.net/r_misaya/article/details/40324841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!