【ACM】Uva 455
阿新 • • 發佈:2018-11-06
【題目】:如果一個字串可以由某個長度為k的字串重複多次得到,則稱該串以k為週期。輸入一個長度不超過80的字串,輸出其最小正週期。
注意以下幾點:
1、它的最小正週期一定可以被它的長度整除。
2第一個大迴圈下 i 可以等於 len ,因為在一個字串內如果沒有重複的字元,那麼將預設它的長度就是他的週期。
AC程式碼:
#include <iostream> #include <cstdlib> #include <stdio.h> #include <string.h> #include <string> using namespace std; int main() { int T, i,j,len,flag; cin>>T; char s[100]; while(T--) { cin>>s; len=strlen(s); for(i=1;i<=len;i++) { if(len%i==0) { flag=1; for(j=i;j<len;j++) { if(s[j]!=s[j%i]) { flag=0; break; } } if(flag) { cout<<i<<endl; if(T) cout<<endl; break; } } } } return 0; }