【发布时间】:2012-01-29 02:53:22
【问题描述】:
这是一个家庭作业,所以我不想要确切的代码,但如果有任何想法可以帮助我指明正确的方向,我将不胜感激。
任务是编写一个解谜程序。我觉得递归部分已经记下来了,但我需要一些关于如何将当前字符序列与字典进行比较的见解。
我需要将字典存储在集合或排序列表中。我一直在尝试一种使用集合来实现这一点的方法。为了让程序运行得更快而不是走死胡同,我需要检查当前字符序列是否作为集合(字典)中任何内容的前缀存在。
我发现 set.find() 操作仅在字符串完全匹配时才返回 true。在实验室要求中,教授提到:
"如果字典存储在一个集合中,许多数据结构库都提供了一种方法来查找集合中最接近您正在搜索的字符串。这样的操作可以用来快速找到一个单词给定的前缀。”
我今天一直在寻找教授所描述的内容。我找到了很多关于尝试的信息,但由于我需要使用列表或集合,我认为这不会起作用。
我也尝试查找自动完成函数的算法,但我发现的算法对于我在这里要完成的任务来说似乎非常复杂。
我还考虑使用 strncmp() 将当前序列与字典集中的单词进行比较,但同样,我不知道在这种情况下它究竟会如何发挥作用,如果有的话。
是否值得继续研究这将如何在集合中工作,或者我应该尝试使用排序列表来存储我的字典?
谢谢
【问题讨论】:
标签: c++ data-structures set prefix boggle