本文共 959 字,大约阅读时间需要 3 分钟。
为了找出给定字符串的最小周期,我们可以使用暴力解法。通过遍历所有可能的周期长度,我们检查每个长度是否满足条件,从而确定最小的周期长度。
#includeusing namespace std;int main() { char s[100]; int n = strlen(s); for (int k = 1; k <= n; ++k) { if (n % k != 0) { continue; } bool valid = true; for (int i = 0; i < n; ++i) { if (s[i] != s[i % k]) { valid = false; break; } } if (valid) { cout << k << endl; return 0; } } // 根据题目,所有情况都能找到周期,因此无需处理 return n;}
s 被读取,长度为 n。n 遍历每个可能的周期长度 k。n 不能被 k 整除,跳过当前 k。k 长度的重复子串构成。取前 k 个字符作为基准,逐个字符检查后续字符是否与基准字符相同。k,输出并结束程序。这种方法确保了我们能准确找到字符串的最小周期,并且在合理的时间内完成计算。
转载地址:http://ockj.baihongyu.com/