0
我想构建一个android应用程序,用户可以输入一个字符串,并且与该字符串相关的列表表情符号会显示出来。 (就像Venmo应用程序)例如:表情符号查找表格和算法
情况1:用户输入“pizz”,并在列表中会出现“”,注意用户输入“pizz”,而不是比萨! 案例2:用户输入“rabb”,在列表中会出现“”和“”,注意用户输入“rabb”,而不是兔子!
这个问题会是一个很好的数据结构和算法吗?
我想构建一个android应用程序,用户可以输入一个字符串,并且与该字符串相关的列表表情符号会显示出来。 (就像Venmo应用程序)例如:表情符号查找表格和算法
情况1:用户输入“pizz”,并在列表中会出现“”,注意用户输入“pizz”,而不是比萨! 案例2:用户输入“rabb”,在列表中会出现“”和“”,注意用户输入“rabb”,而不是兔子!
这个问题会是一个很好的数据结构和算法吗?
A trie是你在找什么。从Wikipedia
特里树,也叫数字树,有时基数树或前缀树(因为他们可以通过前缀搜索),是一种搜索树的有序树数据结构的..
一个trie类似于一个HashMap<K,V>
,你可以用键执行查找并获得一个值。区别在于你也可以用前缀进行搜索。给定一个前缀,它将找到结构中具有该前缀的所有键值对。它基本上是的数据结构,用于生成搜索建议。
一般的思想:
Trie<String, String> t = new Trie<String, String>();
t.insert("pizza", "");
t.insert("rabbit1", "");
t.insert("rabbit2", "");
// then later...
t.findByPrefix("rabb"); // [,]
不幸的是,尝试过通用的,不存在任何流行的数据结构库(如Java集合框架或谷歌番石榴,例如)。你必须自己实现一个或找到一个现有的实现并修改它。 我推荐:
TrieST
并修改它。它与你所需要的非常相似(或已经完美):http://algs4.cs.princeton.edu/52trie/TrieST.java.html具体参见keysWithPrefix
方法。