用 Python 编写程序检查是否有任何一对几乎相同的单词

pythonserver side programmingprogramming更新于 2026/1/5 21:32:17

假设我们有一个名为单词的小写字符串列表,其中每个单词的长度相同。我们必须检查是否有两个字符串仅在一个字符上有所不同。

因此,如果输入为 words = ["seed", "pick", "lick", "root", "live"],则输出将为 True,因为 "pick" 和 "lick"几乎相同。

为了解决这个问题,我们将遵循以下步骤 −

  • s := a new set
  • 对于 words 中的每个单词,执行
    • 对于 word 中的每个索引 i 和单词 w,执行
      • 如果 word[从索引 0 到 i - 1] 的子字符串连接 "*" 连接 word[从索引 i + 1 到结尾] 存在于 s 中,则
        • 返回 True
      • 否则,
        • 将 (word[从索引 0 到 i-1] 连接 "*" 连接 word[从索引 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

相关文章


有用资源