【周期串】NYOJ-1121 周期串

【题目链接:NYOJ-1121

  例如:abcabcabc

    该字符串的长度为9,那么周期串的长度len只可能为{1,3,9},否则就不可能构成周期串。

    接下来,就是要在各周期间进行比较。描述不清。。。自己走一遍就懂了。

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 const int MAXN = 202;
 5 char s[MAXN];
 6 int main(){
 7     while((cin >> s)){
 8         int len = strlen(s);
 9         for(int i = 1;i <= len;i++){
10             if(len % i == 0){
11                 int run = 1;
12                 for(int j = i;j < len;j++){
13                     if(s[j] != s[j % i]){
14                         run = 0;
15                         break;
16                     }
17                 }
18                 if(run){
19                     cout << i << endl;
20                     break;
21                 }
22             }
23         }
24         memset(s,‘\0‘,sizeof(s));
25     }
26     return 0;
27 }
时间: 2024-10-12 00:02:10

【周期串】NYOJ-1121 周期串的相关文章

NYOJ 44 字串和

子串和 时间限制:5000 ms  |  内存限制:65535 KB 难度:3 描述 给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n. 输入 第一行是一个整数N(N<=10)表示测试数据的组数) 每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的一行里有n个整数I(-100=<I<=100),表示数列中的所有元素.(0<n<=1000000) 输出 对于

NYOJ 661 亲亲串

亲亲串 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 如果有一个字符串,它的前半段等于它后半段,例如 abcabc,我们就叫这种字符串为"亲亲串". 现在给你一个字符串(仅有大小写字母组成),可以在任意的位置添加任意个字符,使这个字符串成为一个"亲亲串",最少需要添加多少个字符? 输入 第一行是一个整数N(0<N<=1000),表示有N组测试数据. 接下来有N行,每行有一个字符串,字符串的长度小于1000: 输出 对于每组

第四章:1.串 -- 串类型定义及串的表示和实现

前言: 计算机上的应用程序几乎都是以字符串数据作为处理对象,然而,现今我们使用的计算机的硬件结构主要是反映数值计算的需要的,因此,在处理字符串数据时比处理整数和浮点数要复杂得多.而且,在不同类型的应用中,所处理的字符串具有不同的特点,要有效地实现字符串的处理,就必须根据具体情况使用合适的存储结构.这一章,我们将讨论一些基本的串处理操作 和 几种不同的存储结构. 目录: 1.串类型的定义 2.串的表示和实现 2.1.定长顺序存储表示 2.2.堆分配存储表示 2.3.串的快链存储表示 3.串的模式匹

java 11-8 在大串中查找小串的案例

1.统计大串中小串出现的次数 举例: 在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun" 结果: java出现了5次 分析: 1.首先已经知道字符串 A:定义一个统计变量=0: B:在大串中查找小串是否存在,用 int indexOf(String str):返回指定字符在此字符串中第一次出现处的索引. a:如果返回的索引值是-1,则说明 大串中并不存在这个小串,输出统计变量 b:返回

hdu2896 病毒侵袭 AC自动机入门题 N(N &lt;= 500)个长度不大于200的模式串(保证所有的模式串都不相同), M(M &lt;= 1000)个长度不大于10000的待匹配串,问待匹配串中有哪几个模式串,

/** 题目:hdu2896 病毒侵袭 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2896 题意:N(N <= 500)个长度不大于200的模式串(保证所有的模式串都不相同), M(M <= 1000)个长度不大于10000的待匹配串,问待匹配串中有哪几个模式串, 题目保证每个待匹配串中最多有三个模式串. 思路:ac自动机做法,字符为可见字符,那么直接就是他们的ascii值作为每一个字符的标志.最多128: 由于不超过三个,所以找到3个就可以re

hdu3065 病毒侵袭持续中 AC自动机入门题 N(N &lt;= 1000)个长度不大于50的模式串(保证所有的模式串都不相同), 一个长度不大于2000000的待匹配串,求模式串在待匹配串中的出现次数。

/** 题目:hdu3065 病毒侵袭持续中 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3065 题意:N(N <= 1000)个长度不大于50的模式串(保证所有的模式串都不相同), 一个长度不大于2000000的待匹配串,求模式串在待匹配串中的出现次数. 思路:ac自动机做发,val标记每一个病毒串编号,通过print函数统计每一个病毒出现的次数. AC自动机好文章:http://www.cppblog.com/menjitianya/archi

HDOJ 题目4416 Good Article Good sentence(后缀数组求a串子串在b串中不出现的种类数)

-每周六晚的BestCoder(有米!) Good Article Good sentence Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2784    Accepted Submission(s): 785 Problem Description In middle school, teachers used to encour

周期串 输出串的最小周期

1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #include <math.h> 5 using namespace std; 6 7 int main() 8 { 9 char word[100]; 10 scanf("%s",word); 11 int len = strlen(word); 12 for(int i = 1;i <= len

NYOJ 252 01串(斐波那契数列变形)

01串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 ACM的zyc在研究01串,他知道某一01串的长度,但他想知道不含有“11”子串的这种长度的01串共有多少个,他希望你能帮帮他. 注:01串的长度为2时,有3种:00,01,10. 输入 第一行有一个整数n(0<n<=100),表示有n组测试数据;随后有n行,每行有一个整数m(2<=m<=40),表示01串的长度; 输出 输出不含有“11”子串的这种长度的01串共有多少个,占一行. 样例输入 2