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 中
  • 返回 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

更新於: 2021年10月14日

422 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.