Python 程式檢查是否存在任意一對幾乎相同的單詞
假設我們有一個稱為 words 的小寫字串列表,其中每個單詞的長度相同。我們必須檢查是否存在兩個字串僅在一個字元上有所不同。
因此,如果輸入類似於 words = ["seed", "pick", "lick", "root", "live"],則輸出將為 True,因為 "pick" 和 "lick" 幾乎相同。
為了解決這個問題,我們將遵循以下步驟:
- s := 一個新的集合
- 對於 words 中的每個單詞,執行以下操作
- 對於單詞中的每個索引 i 和單詞 w,執行以下操作
- 如果單詞(從索引 0 到 i - 1)的子字串連線 "*" 連線單詞(從索引 i + 1 到末尾)存在於 s 中,則
- 返回 True
- 否則,
- 將(單詞(從索引 0 到 i-1)連線 "*" 連線單詞(從索引 i + 1 到末尾))插入到 s 中
- 如果單詞(從索引 0 到 i - 1)的子字串連線 "*" 連線單詞(從索引 i + 1 到末尾)存在於 s 中,則
- 對於單詞中的每個索引 i 和單詞 w,執行以下操作
- 返回 False
示例
讓我們看看以下實現,以便更好地理解:
def solve(words): s = set() for word in words: for i, w in enumerate(word): if word[:i] + "*" + word[i + 1 :] in s: return True else: s.add(word[:i] + "*" + word[i + 1 :]) return False words = ["seed", "pick", "lick", "root", "live"] print(solve(words))
輸入
["seed", "pick", "lick", "root", "live"]
輸出
True
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP