首页 > 解决方案 > 检测一个单词是否只有一个缺失或不正确的字母?

问题描述

我一直在用 python 制作一个简单的 Hangman 游戏。我想要一个代码块,它可以确定用户(输入)的猜测是缺少一个字母还是与原始单词仅相差一个字母。

例如,假设用户必须猜测的单词是“apple”。如果用户写了“apple”,游戏将显示“你猜对了!” 如果用户输入了一个完全不同的词,例如“橙色”,游戏将显示“错误!再试一次”。到目前为止,除了用户输入“aple”或“aPble”或“appl”之类的单词我希望游戏显示“CLOSE!”的部分之外,我已经能够完成所有这些操作。

请注意,我对 python 编程和堆栈溢出都是 100% 的新手,所以如果我以某种方式搞砸了解释问题,请原谅:)

标签: python

解决方案


你可以做得更好!计算Levenshtein 距离,也称为编辑距离

什么?

Levenshtein 距离是文本相似度的度量。它会告诉您在添加/删除/替换方面,您需要从一段文本到另一段进行多少更改。

单词carbar的距离为1,因为 1 次替换就足够了。tea和相同team,加 1 即可。要real变成steal,你需要一个替换加一个加法,所以距离是2

换句话说,它准确地量化了您与猜测单词的距离。距离1会符合您的要求,但您可以使用该数字并为您的玩家提供更丰富的反馈。

但是怎么做?

StackOverflow 中的这个答案包含您可以窃取的代码,以及指向其他实现选项的链接。


推荐阅读