用 Python 编写程序,查找一串单词有多少个不同的旋转组
pythonserver side programmingprogramming更新于 2026/1/6 20:28:17
假设我们有一个字符串的旋转组,其中包含所有独特的旋转。如果输入是"567",那么它可以旋转为"675"和"756",它们都在同一个旋转组中。现在,如果我们有一个字符串单词列表,我们必须根据它们的旋转组对每个单词进行分组,并找出组的总数。
因此,如果输入是 words = ["xyz"、"ab"、"ba"、"c"、"yzx"],则输出将为 3,因为有三个旋转组减去["xyz", "yzx"], ["ab", "ba"], ["c"]。
为了解决这个问题,我们将遵循以下步骤 −
- s:= 一个新的集合
- ct:= 0
- 对于单词中的每个 i,执行
- 如果 i 不在 s 中,则
- ct := ct + 1
- 对于范围从 0 到 i 的大小的 j,执行
- temp := i 的子字符串[从索引 j 到末尾] 连接 i 的子字符串 [从开头到 j])
- 将 temp 插入s
- 如果 i 不在 s 中,则
- 返回 ct
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def solve(self, words): s=set() ct=0 for i in words: if i not in s: ct+=1 for j in range(len(i)): s.add(i[j:]+i[:j]) return ct ob = Solution() print(ob.solve(["xyz", "ab", "ba", "c", "yzx"]))
输入
["xyz", "ab", "ba", "c", "yzx"]
输出
3
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

