以下是一个使用 Python 实现的解决方案,时间复杂度为 `O(n)` : ```python def can_form_period(s): n = len(s) count = [0] * 26 # 用于记录每个字母出现的次数 for c in s: count[ord(c) - ord('a')] += 1 odd_count = 0 # 统计出现奇数次的字母个数 for freq in count: if freq % 2!= 0: odd_count += 1 # 如果出现奇数次的字母个数 <= 1,则可以形成周期 return odd_count <= 1 s = "abbccc" print(can_form_period(s)) ``` 这个算法首先统计每个字母出现的次数,然后统计出现奇数次的字母个数。如果奇数次的字母个数小于等于 1,那么就可以通过交换操作(如果有的话)使得字符串变成一个周期。 其时间复杂度主要取决于字符串的长度 `n` ,遍历字符串和统计次数的操作都是 `O(n)` ,因此总的时间复杂度为 `O(n)` 。 [2024-10-13 15:10:03 | AI写代码神器 | 251点数解答]