Python程式:查詢單詞列表中不同旋轉組的數量
假設我們有一個字串的旋轉組,其中包含其所有唯一的旋轉。如果輸入是“567”,則它可以旋轉為“675”和“756”,它們都在同一個旋轉組中。現在,如果我們有一系列字串words,我們必須按其旋轉組對每個單詞進行分組,並找到組的總數。
因此,如果輸入類似於words = ["xyz", "ab", "ba", "c", "yzx"],則輸出將為3,因為有三個旋轉組——["xyz", "yzx"], ["ab", "ba"], ["c"]。
為了解決這個問題,我們將遵循以下步驟:
- s := 一個新的集合
- ct := 0
- 對於words中的每個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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP