任何人都可以建议一个合适的数据结构来保存一个字典,这个字典可以让我查询在特定位置有特定字母的单词(项)的存在吗?例如,确定哪些单词(如果有的话)在位置x,y,z处具有字母a,b,c。插入不必特别有效。
这基本上是拼字游戏问题(我的分数也与字母相关,但这不需要关注我们)。我怀疑生物信息学家在sequence alignment的幌子下研究了同样的问题。在速度方面,最先进的是什么?
答案 0 :(得分:2)
如果您正在尝试构建一个非常快速的Scrabble播放器,您可能需要查看专门为此目的设计的 GADDAG 数据结构。从本质上讲,GADDAG是一个压缩的特里结构(具体来说,它是一个修改过的DAWG),它可以让你向外探索并找到所有可以使用某组字母制作的单词,这些字母受限于单词的哪些字母必须位于什么位置,以及找到的琴弦的总长度。
关于GADDAGs的维基百科文章更深入地介绍了有关该主题的原始论文的结构和链接。您可能还希望将DAWG视为起点。
希望这有帮助!