使用Levenshtein算法边缘情况调试的拼写辅助

时间:2016-12-08 06:59:24

标签: c++ c++11 dictionary edit-distance

向开发人员致以问候!

背景

我已经实现了一种拼写辅助算法,该算法使用字典文件将用户输入更正为编辑距离1。我主要使用C ++中的映射来实现,即存储字典单词&它的相应频率和过程相同。

此链接暂时共享代码:https://codeshare.io/2pVr6a

我的问题如下:

此特定测试用例中的代码测试。我知道这很长,但它是唯一失败的:

dictionary.txt

ACCD 100
AACD 100
ABCD 100
ACC 100
AAC 100
ABB 100
ABC 100
AAA 100
ABA 100
ABCDE 101
A 100
AB 101
THIS 10
E 100
CD 100
AC 100
QQQ 1

输入

ABC AAC AAAA QABC OWAA ACBD WIDLS ACC WW KQQQ AACB QQQQ AACCD ACDD ACCD ACDDD AACD ABAB ACABA BUCASC LKA AAAAA AAAA A AC CCA CA ABCD ACD QIE E CDE AC C QQ QA BBB CCC ACD CDAA THI THIS THISI TTA AT ABBB

所需的输出

ABC 100
AAC 100
AAA 100
ABC 101
-
ACCD 100
-
ACC 100
-
QQQ 1
AAC 101
QQQ 1
AACD 100
ACCD 100
ACCD 100
-
AACD 100
ABA 100
-
-
-
-
AAA 100
A 100
AC 100
-
A 101
ABCD 100
AACD 101
-
E 100
CD 100
AC 101
AC 102
QQQ 1
A 101
ABB 100
ACC 101
AC 102
-
THIS 10
THIS 10
THIS 11
-
AC 102
ABB 100

实际输出

ABC 100
AAC 100
-
-
-
ACCD 100
-
ACC 100
-
-
AACD 100
KQQQ 1
-
ACCD 101
ACCD 102
-
AACD 101
-
-
-
-
-
AAAA 1
A 100
AC 100
-
CD 100
ABCD 100
ACC 101
-
E 100
-
AC 101
A 101
-
QQ 1
ABB 100
ACC 102
ACC 103
-
-
THIS 10
-
-
AC 102
ABAB 1

0 个答案:

没有答案