neuoj 1243
2015-06-22 16:03
253 查看
KMP........ but for the easy data, you can AC it in any way,(my code is not KMP)
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char a[10001];
char b[5001],c[5001];
int main()
{
int i,m,j,k;
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%s",a);
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
int len=strlen(a);
int flag;
for(k=1;k<=len/2;k++)
{
flag=1;
if(len%k!=0) continue;
for(j=0;j<k;j++)
{
b[j]=a[j];
}
for(int l=1;l<len/k;l++)
{
for(int w=0;w<k;w++)
{
c[w]=a[l*k+w];
}
if(strcmp(b,c)!=0)
{
flag=0;
break;
}
}
if(flag==1) break;
}
if(flag==1) printf("%d\n",len/k);
else printf("1\n");
}
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char a[10001];
char b[5001],c[5001];
int main()
{
int i,m,j,k;
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%s",a);
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
int len=strlen(a);
int flag;
for(k=1;k<=len/2;k++)
{
flag=1;
if(len%k!=0) continue;
for(j=0;j<k;j++)
{
b[j]=a[j];
}
for(int l=1;l<len/k;l++)
{
for(int w=0;w<k;w++)
{
c[w]=a[l*k+w];
}
if(strcmp(b,c)!=0)
{
flag=0;
break;
}
}
if(flag==1) break;
}
if(flag==1) printf("%d\n",len/k);
else printf("1\n");
}
return 0;
}
相关文章推荐
- sql学习笔记(24)----------MySQL的事务处理详解
- 关于JS数组中every与some两者迭代方法探索
- usb的一些基本知识
- LexTreeWordState API
- 数据库设计三大范式
- Uva - 12174 - Shuffle
- 深入理解linux网络技术内幕读书笔记(八)--设备注册与初始化
- matlab中的随机矩阵及其相关函数的使用
- Uva - 12174 - Shuffle
- 28.对文件进行读写
- Objective-C协议与代理
- LexTreeUnitState API
- 院赛只出了两题-----------真是日了狗了
- LexTreeState API
- Visual Studio 2012最最常用快捷键总结
- curl订单具体解释
- LexTreeSearchGraph API
- LexTreeNonEmittingHMMState API
- 指针的相关知识(三)
- 01-复杂度2. Maximum Subsequence Sum (25)