问题:我们得到一个包含许多行文本的文本文件。现在用户将输入几个字母,我们必须根据我们给出的文件中的文本给出自动完成建议。
我们假设该文件包含computer science is fun. computer engineering is awesome
。
现在,如果用户输入com
,我们需要提供建议computer science
和computer engineering
。如果用户输入is
,则建议应为fun
和awesome
。用户可以输入文本文件中可能包含或可能不包含的任何单词。如果单词不在文件中,则不应该有任何建议。
这个问题的最佳数据结构是什么
我知道我们可以构建一个特里结构,但是当用户键入computer
时,我们可能只能建议com
。
感谢任何帮助。
答案 0 :(得分:1)
的制备:将
查询:
first
last
。如果您的最后一个字符无法递增,请使用索引结束后的索引。所有可能的建议都在这两个边界之间的排序数组中,不包括最后一个索引:[first, last)
。
如果建议太多,您可以过滤建议3个最短的建议,或按统计频率排序。
您还可以打印建议数量而不是建议它们。类似于谷歌告诉你有多少页面符合你的查询的方式。然后,只有当您的UI可以管理匹配数量时才建议字符串。