UVa 455 - Periodic Strings(字符串处理)
来源:互联网 发布:touch.js api 中文 编辑:程序博客网 时间:2024/05/05 00:29
今天帮人Debug,实在看不懂他写的什么,就重写了一份给他。感觉学了这么久之后,再写这种水题轻松加随意,写得也比之前的好了。
代码如下:
#include<stdio.h>#include<string.h>int t;char s[90];int main(){ scanf("%d",&t); while(t--){ scanf("%s",s); int i,n=(int)strlen(s); for(i=1;i<n;++i){ if(n%i) continue; int ok=1,j=0,k=0; for(;j<n&&ok;k%=i) if(s[j++]!=s[k++]) ok=0; if(ok) break; } printf("%d\n",i); if(t) printf("\n"); } return 0;}
从昨天晚上开始做的,今天终于Ac了。题目是让输出输入的字符串的最小周期。开始使用了数组,当字符长度为n时,i从n-1开始自减,n%i=0时,建立数组a[ i ][ n/i ];判断数组中对应值是否相等来输出i。可总是出问题,于是后来放弃数组,改为用j%i表示昨天数组中对应的值,并且使用x,y两个变量来限制多余的循环,提交一次就Ac了。
#include <stdio.h>#include <string.h>#define maxn 100int main(){ int T,n,i,j,x,y; scanf("%d",&T); char s[maxn]; while(T--) { y=0; scanf("%s",s); n=strlen(s); for(i=1;i<=n;i++) { if(n%i==0) { x=1; for(j=i;j<n;j++) { if(x==0) break; if(s[j]!=s[j%i]) x=0; } if(x) y=i; } if(y) break; } if(T) printf("%d\n\n",y); else printf("%d\n",y); } return 0;}
0 0
- UVa 455 - Periodic Strings(字符串处理)
- UVa 455 Periodic Strings (字符串处理)
- UVa 455 Periodic Strings(周期字符串)
- UVa 455 - Periodic Strings【字符串】
- UVA 455 Periodic Strings(字符串的循环节)
- UVA.455 Periodic Strings(字符串的最小周期)
- UVa 1584 Circular Sequence / 455 Periodic Strings(枚举字符串)
- UVa 455 Periodic Strings 【字符串求周期】
- UVA 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 Periodic Strings
- UVa - 455 Periodic Strings
- UVa 455 Periodic Strings
- UVa 455 - Periodic Strings
- Uva 455-periodic strings
- Uva 455-periodic strings
- GitHub
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- golang可以写前端,你澡吗?
- POJ 2352 Stars 树状数组
- linux shell的自动交互
- UVa 455 - Periodic Strings(字符串处理)
- 集算报表对润乾报表的优化精简
- IIC
- ZigZag Conversion (Java)
- win7 64 install dual os with debian 7-Windows7_Debian双系统安装
- 网卡厂商查询
- android 状态保持
- orcal创建用户
- 通过iframe实现ajax方式上传文件