UVA 455 週期串
阿新 • • 發佈:2019-02-01
題目的意思很簡單,但是調了我好久,有很多細節都沒有發現,導致很多的錯誤輸出。
題目實際上就是讓我們用暴力的方法列舉最小迴圈節,因為字串的長度比較小,故使用暴力就足以,如果長度比較大的話,那就得考慮KMP來解決了。
# include<cstdio> # include<iostream> # include<cstring> using namespace std; # define MAX 100 char s[MAX]; int main(void) { int t;cin>>t; while (t--) { scanf("%s",s); int n = strlen(s); int k; for ( int i = 1;i <= n;i++ ) { if ( n%i == 0 ) { for ( k = i;k < n;k++ ) { if ( s[k]!=s[k%i] ) break; } if ( k == n ) { printf("%d\n",i); break; } } } if (t) cout<<endl; } return 0; }