这是我关于堆栈溢出的第一个问题。一些快速的背景知识,这不是一个学校项目,只是为了好玩、练习和学习。我正在尝试用 C 语言进行拼写检查。我遇到的问题是想出可能的单词来替换拼写错误的单词。
我还应该指出,在我的课程中,我们还没有接触到更高层次的编程概念,比如时间复杂度或算法开发。我这么说是因为我觉得我真正要问的概念有名字,我只是还没有听说过。
在其他类似的帖子中,大多数人建议使用 levenshtein 距离或遍历帕特里夏树;只比较子字符串会有问题吗?我想出的(非常低效的)算法是:
将第一个N
字符 whereN = length of the misspelled word - 1
与字典单词进行比较(它们将从系统文件中读取到动态分配的数组中)
如果N
拼写错误的单词中的字符和字典中的单词匹配,则将其添加到建议列表中;如果找不到更多匹配项,则递减N
继续直到找到 10 条建议或N = 0
感觉笨拙和尴尬,但这是我们教科书建议的处理方式。我已经阅读了关于遍历树和计算各种有趣的东西以提高效率和准确性的 wiki 文章,但此时它们已经超出了我的想象。感谢您提供任何帮助,并感谢您花时间阅读本文。