【发布时间】:2012-06-26 01:21:46
【问题描述】:
考虑一个询问您问题的程序,例如“您最近访问的网站是什么?”答案是“stackoverflow”。用户被问到这个问题并给出答案“stakovervlow”或“overflowstack”。我仍然需要程序将其算作正确答案。
为了比较普通字符串,我会使用 StringCompare 类,但在这种情况下这不起作用。我在网上搜索了一些关于 SOUNDEX 的文章和一些算法来比较字符串中的每个字符并计算相似度百分比(如 damerau levenshtein 距离),但我真的不知道什么是最好的。
任何人都知道.net 中是否有一个类可以完成此任务,或者将用户答案与正确答案进行比较的最佳方法是什么?
【问题讨论】:
-
谷歌拼写检查算法。
-
检查en.wikipedia.org/wiki/Levenshtein_distance 和dotnetperls.com/levenshtein 了解基本概念。我不认为有一个预定义的类来完成你想要的。
-
如果这将成为一项安全功能,这似乎是一个可怕的想法。应该要求您准确输入您最初输入的内容。