【发布时间】:2019-11-15 07:46:11
【问题描述】:
我的情况是:我有一个无序的名称映射。
客户端可以输入名称——比如 fooo——将被搜索(使用find())并且未找到的键将打印“未找到”。
我想为客户提供更好的输出:“foo not found. 你的意思是 foo 吗?”
我认为除非实现一个镜像密钥集合的 trie,应用“查找最小列文斯坦距离”算法,否则这是不可能的。我算错了还是算对了?
【问题讨论】:
-
这方面的算法有很多,一般都不是微不足道的。除非这是针对一个更大的项目或者它是要求的一部分,否则可能不值得花额外的时间来实现这样的东西。好吧,如果是为了一个私人项目,你只是为了好玩或学习,那也可以,但你仍然应该考虑是否值得付出努力。
-
@Someprogrammerdude 是的,在我的情况下,这只是如果它是一行那么酷。例如就像
std::lower_bound(begin(m), end(m), boost::string_distance);你看到了这个想法。
标签: c++ unordered-map trie levenshtein-distance