博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 455 周期串 (Periodic Strings)
阅读量:4217 次
发布时间:2019-05-26

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

题目意思:

            如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例如,abcabcabcabc以3为周期(注意6,12也为周期 ),求的是最小周期。

实现:

#include
#include
#define maxn 100000int main() { char s[maxn]; int n, i; int ok;// freopen("C:\\Users\\zhangwei\\Desktop\\input.txt","r",stdin);// freopen("C:\\Users\\zhangwei\\Desktop\\output.txt","w",stdout); scanf("%d",&n); while(n--){ getchar();//这个最好加上 防止换行符 不过没加的时候也AC了 scanf("%s",&s); int len = strlen(s); for(i = 1; i <= len; i++ ){//i表示周期 要可以取到 len(注意) ok = 1; //循环开始 置为1 if(len % i == 0){//首先要满足 周期能被 字符串长度整除 不然失去意义了 for(int j = 0; j < len; j++ ){//这里是扫描字符(不可以取到len 因为数组越界) if(s[j] != s[j%i]){// 核心 ok = 0; break; } } if(ok)//目的找到最小的周期 就退出循环 break; } } if(ok){//题目要求Outpu 空一个空行 printf("%d\n",i); if(n)//最后一个 不能 有空行 printf("\n"); } } return 0; }

转载地址:http://oaimi.baihongyu.com/

你可能感兴趣的文章
MySQL必知必会 -- 数据检索
查看>>
MySQL必知必会 -- 排序检索数据 ORDER BY
查看>>
POJ 3087 解题报告
查看>>
POJ 2536 解题报告
查看>>
POJ 1154 解题报告
查看>>
POJ 1661 解题报告
查看>>
POJ 1101 解题报告
查看>>
ACM POJ catalogues[转载]
查看>>
C/C++文件操作[转载]
查看>>
常见的排序算法
查看>>
hdu 3460 Ancient Printer(trie tree)
查看>>
KMP求前缀函数(next数组)
查看>>
KMP
查看>>
poj 3863Business Center
查看>>
Android编译系统简要介绍和学习计划
查看>>
Android编译系统环境初始化过程分析
查看>>
user2eng 笔记
查看>>
DRM in Android
查看>>
ARC MRC 变换
查看>>
Swift cell的自适应高度
查看>>