【发布时间】:2019-08-31 06:53:11
【问题描述】:
我正在尝试实现一个自动完成方法,该方法接收输入字符串并在给定的单词数组中搜索以输入字符串作为数组中单词前缀的单词。
我已经通过遍历单词数组并返回所有带有给定输入字符串前缀的元素成功地实现了这一点。但是,我认为应该有一种最佳方式来执行此操作,因为我意识到在对元素进行排序后循环遍历数组的所有元素。
我只想选择数组中以给定字符串的第一个字母开头的元素,然后在该子数组中搜索以该字符串为前缀的单词。这将大大缩短处理时间并提供最佳解决方案。
我可以使用什么数据结构,不需要我遍历整个给定数组或字典键(我尝试使用映射来实现它),但只选择包含接近解决方案的元素的子数组?
PS:我也玩过 Apache Commons 的 ArrayUtils.subArray() 但无法检索子数组。关于如何实现这一点的任何想法?
【问题讨论】:
-
这绝对是特里。检查Trie Applications。
标签: java data-structures