首页 > 试题广场 >

搜索提示或者说智能提示,就是用户在输入框敲一个字符会弹出下拉

[问答题]

搜索提示或者说智能提示,就是用户在输入框敲一个字符会弹出下拉列表提示候选词给用户,方便用户输入,提升用户体验。假设我们的提示只支持前缀提示,支持汉字、拼音和英文提示。待提示的所有记录以及存在一个文本文件中,每行包含两部分:词和出现频率;同时我们有一个汉字和拼音转换表。不要求关注关注前端页面如何展示,请你给出实现方案、思路和核心数据结构。

搜索提示功能如下:

字典树
发表于 2017-07-22 08:38:56 回复(0)
为了这个,花了两三个小时写了个相对还算符合要求的代码,肯定是用字典树了,数据结构也不知道这样子写是好还是不好
public class TreeNode {
    public char word;  //当前字符
    public String val; //跟节点到当前节点的完整信息 
    //例如首节点是a,第二节点是 b,本节点为第三节点c 则 val ="abc"
    public HashMap<Character,TreeNode> childs;  //子节点,用map存储,方便查询
    public int hot = 0;  //热度
}

完整代码一百多行,就不贴了
发表于 2020-10-09 19:59:24 回复(0)
字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。
发表于 2017-08-21 20:19:31 回复(0)
字典树可以
或者 使用map实现的一个文本查询程序即可;
发表于 2017-08-21 13:36:34 回复(0)
百度地图。
发表于 2017-07-19 18:30:13 回复(0)