酷代码 AI
菜单
服务商

Python实现:O(n)复杂度判断小写字母串能否经一次交换成周期串

以下是一个使用 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)` 。 ######[AI写代码神器 | 251点数解答 | 2024-10-13 15:10:03]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]