UVa 455 Periodic Strings(周期串)
来源:互联网 发布:淘宝客服图片大全 编辑:程序博客网 时间:2024/05/17 22:08
//求字符串的最小周期//我的思路,找与s[0]相同的字符,然后判定从s[0]到此字符之前的长度能不能作为一个周期#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char s[110]; int n; scanf("%d",&n); getchar(); while(n--){ getchar(); scanf("%s",s); if(strlen(s)==1){ printf("%d\n",1); if(n) putchar('\n'); continue; } int i,j; for(i=1;s[i]!='\0';i++){ if(s[i]==s[0]&&strlen(s)%i==0){//此处判断此时的周期长度能被总长度整除 for(j=i;s[j]!='\0';j++)//!!!重点!!!此处判断当前采取的周期合适 if(s[j]!=s[j%i]) break; if(s[j]=='\0'){ printf("%d\n",i); if(n) putchar('\n'); break; } } } if(s[i]=='\0'){ printf("%d\n",strlen(s)); if(n) putchar('\n'); } } return 0;}/*他人方法:暴力搜索解题思路:在长度范围之内,一个个枚举周期即可,注意周期应能被总长度整除#include<stdio.h>#include<string.h>#include<ctype.h>#define max 100+10char s[max];int main(){ int n, len; scanf("%d", &n); getchar(); while (n--) { getchar(); gets(s); len = strlen(s); for (int i = 1; i <= len;i++) if (len%i == 0) { bool ok = true; for (int j = i; j < len;j++) if (s[j] != s[j%i]) { ok = false; break; } if (ok) { printf("%d\n", i); if (n) putchar('\n'); break; } } } return 0;}*/
1 0
- UVa 455 Periodic Strings(周期串)
- UVa 455 Periodic Strings(周期串)
- UVa 455 周期串 (Periodic Strings)
- 小紫书 习题 3-4(UVA 455) 周期串(Periodic Strings)
- UVA 455 Periodic Strings (最短周期串长度)
- UVa 455 Periodic Strings(周期字符串)
- UVa 455 Periodic Strings 【字符串求周期】
- 周期串(Periodic Strings)
- UVA.455 Periodic Strings(字符串的最小周期)
- UVa455 Periodic Strings(周期串)
- 周期串 Periodic Strings, UVa455
- 周期串 (Periodic Strings, UVa455)
- Uva455-Periodic Strings-周期串
- UVA 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 Periodic Strings
- 2016.7.21纪中比赛总结
- 【《大型网站技术架构-核心原理与案例分析》学习笔记】大型网站架构演化(一)
- C++ hdoj 2025 查找最大元素
- poj2836 状压dp
- Spring面试问答Top 25
- UVa 455 Periodic Strings(周期串)
- Android学习笔记--Binder
- 可以的,这很RESTful(Spring)
- (二十五)、Math和Random类
- IT-数据库--mysql--mysql索引
- hdu3966Aragorn's Story
- python的import与from...import的不同之处
- C++ Builder /BCB 读取配置文档
- 模板:快速幂和快速等比数列和