游戏是这样的: 播放器在[0..10]中输入多个元音。 我们生成10输入(元音)辅音,最终显示无序的10个字母。 然后玩家尝试用给定的字母形成可能的最长单词。
问题: 我们有一个重要大小的字典来查找单词是否有效。
搜索它的最佳方法是什么? 我最好的两个想法是:
Streamer()
。 filter方法使用一个返回单词中元音数量的函数。就时间复杂度而言,两者看起来都非常昂贵(我不知道我是否正确使用该术语)。
我希望我很清楚。
答案 0 :(得分:1)
我假设你正在使用java。如果是这样,您可以将所有单词存储在HashSet<String>
中。
在存储桶中设置商店数据。因此,当你搜索一个单词时,jvm会首先找到一个可能有这个单词的存储桶,然后查看该存储桶以确认该单词是否存在。
此方法类似于您提到的选项1。所有的复杂性都隐藏在你身上。你只需要调用contains方法。 jvm在幕后为你做了这一切。
HashSet<String> dictionary = new HashSet<String>();
//add words to dictionary
dictionary.add("apple");
//Returns true if this set contains the specified element.
dictionary.contains("apple");