Periodic Strings UVA - 455
阿新 • • 發佈:2018-11-06
#include <stdio.h> #include <string.h> int PeriodicStrings(const char *); bool equal(const char, const char); // 判斷兩個字元是否相等 int main() { int T; char str[100]; scanf("%d", &T); while (T--) { scanf("%s", str); printf("%d\n", PeriodicStrings(str)); if (T) putchar('\n'); } return 0; } int PeriodicStrings(const char * str) { int len = strlen(str); int T, i, j; bool flag = false; for (T = 1; T < len; T++) { if (len % T != 0) continue; for (i = 0; i < T; i++) { for (j = i; j < len - T; j += T) { if (!equal(str[j], str[j+T])) { // 若有不相等則break flag = true; break; } } if (flag) { flag = false; break; } } if (i >= T) return T; } return len; } bool equal(const char a, const char b) { return a == b; }