python - 检测一个单词是否只有一个缺失或不正确的字母?
问题描述
我一直在用 python 制作一个简单的 Hangman 游戏。我想要一个代码块,它可以确定用户(输入)的猜测是缺少一个字母还是与原始单词仅相差一个字母。
例如,假设用户必须猜测的单词是“apple”。如果用户写了“apple”,游戏将显示“你猜对了!” 如果用户输入了一个完全不同的词,例如“橙色”,游戏将显示“错误!再试一次”。到目前为止,除了用户输入“aple”或“aPble”或“appl”之类的单词我希望游戏显示“CLOSE!”的部分之外,我已经能够完成所有这些操作。
请注意,我对 python 编程和堆栈溢出都是 100% 的新手,所以如果我以某种方式搞砸了解释问题,请原谅:)
解决方案
你可以做得更好!计算Levenshtein 距离,也称为编辑距离。
什么?
Levenshtein 距离是文本相似度的度量。它会告诉您在添加/删除/替换方面,您需要从一段文本到另一段进行多少更改。
单词car
和bar
的距离为1
,因为 1 次替换就足够了。tea
和相同team
,加 1 即可。要real
变成steal
,你需要一个替换加一个加法,所以距离是2
。
换句话说,它准确地量化了您与猜测单词的距离。距离1
会符合您的要求,但您可以使用该数字并为您的玩家提供更丰富的反馈。
但是怎么做?
StackOverflow 中的这个答案包含您可以窃取的代码,以及指向其他实现选项的链接。
推荐阅读
- javascript - React 函数不更新状态
- javascript - 无法设置未定义的属性“innerHTML”,联系表单提交
- reactjs - 将状态存储在父组件中而不导致父组件的重新渲染?
- android - 如何将我捕获的图像添加到我的 Hashmap
- php - 处理 PDF 生成并异步发送电子邮件
- javascript - 是否有任何解决方法可以从 readCsv() 方法返回 res 的值而不是 undefined?
- python - 用两个索引索引一维 Axes 数组
- react-native - ListItem 未显示信息 - React Native Elements
- javascript - Mongo / Mongoose - 根据条件将对象推送到文档属性数组中
- python - 在两个元素之间的列表中查找所有元素(不使用索引,并使用环绕)