题目链接:https://vjudge.net/problem/UVA-455 题解:水题:判断最短循环部分 循环判断即可 代码:
#include<iostream> #include<cstring> #include<string> #define maxn 110 using namespace std; char s[maxn]; int len; bool check(int k) { int q=len/k;//一共多少段 for(int i=1; i<q; i++) { for(int j=0; j<k; j++) if(s[j]!=s[i*k+j]) { return false; } } return true; } int main() { int n; int ans; cin>>n; for(int w=0;w<n;w++) { if(w!=0) cout<<endl; ans=0; cin>>s; len=strlen(s); for(int k=1; k<=len; k++) { if(len%k!=0) continue; if(check(k)) { ans=k; break; } } cout<<ans<<endl; } return 0; }