trie树
文章平均质量分 79
trie树
yuzhang_zy
现在的我不是最好的我,未来的我才是最好的我,每一篇博客都记录着我的成长
展开
-
745 前缀和后缀搜索(Trie树-构造)
1. 问题描述:设计一个包含一些单词的特殊词典,并能够通过前缀和后缀来检索单词。实现 WordFilter 类:WordFilter(string[] words) 使用词典中的单词 words 初始化对象。f(string prefix, string suffix) 返回词典中具有前缀prefix和后缀suffix的单词的下标。如果存在不止一个满足要求的下标,返回其中 最大的下标 。如果不存在这样的单词,返回 -1 。示例输入:["WordFilter", "f"][[["a...原创 2021-09-07 10:43:22 · 329 阅读 · 0 评论 -
720 词典中最长的单词(Trie树)
1. 问题描述:给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。示例 1:输入:words = ["w","wo","wor","worl", "world"]输出:"world"解释:单词"world"可由"w", "wo", "wor", 和 "worl"添加一个字母组成。示例 2:输入:words = ["a",.原创 2021-09-01 11:11:44 · 238 阅读 · 0 评论 -
676 实现一个魔法字典(Trie树、dfs)
1. 问题描述:设计一个使用单词列表进行初始化的数据结构,单词列表中的单词互不相同 。 如果给出一个单词,请判定能否只将这个单词中一个字母换成另一个字母,使得所形成的新单词存在于你构建的字典中。实现 MagicDictionary 类:MagicDictionary() 初始化对象void buildDict(String[]dictionary) 使用字符串数组dictionary 设定该数据结构,dictionary 中的字符串互不相同bool search(String searchW..原创 2021-08-03 21:38:12 · 218 阅读 · 0 评论 -
648 单词替换(Trie树、字符串哈希)
1. 问题描述:在英语中,我们有一个叫做词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词——我们称这个词为继承词(successor)。例如,词根an,跟随着单词other(其他),可以形成新的单词another(另一个)。现在,给定一个由许多词根组成的词典和一个句子。你需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。你需要输出替换之后的句子。示例 1:输入:dictionary = ["cat","bat","rat"], se..原创 2021-07-31 18:10:30 · 307 阅读 · 0 评论 -
421 数组中两个数的最大异或值(Trie树优化)
1. 问题描述:给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n 。进阶:你可以在 O(n) 的时间解决这个问题吗?示例 1:输入:nums = [3,10,5,25,2,8]输出:28解释:最大运算结果是 5 XOR 25 = 28.示例 2:输入:nums = [0]输出:0示例 3:输入:nums = [2,4]输出:6示例 4:输入:nums = [8,10,2]输出:1原创 2021-06-28 17:03:35 · 243 阅读 · 0 评论 -
386 字典序排数(Trie树思想,dfs)
1. 问题描述:2. 思路分析:3. 代码如下:原创 2021-06-20 16:14:06 · 247 阅读 · 0 评论 -
212 单词搜索 II(使用Trie树对dfs减枝)
1. 问题描述:给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例 1:输入:board = [["o","a","a","n"],["e","t","a","e"],["i","h","k","r"],["i","f","l","v"]], words =原创 2021-05-09 15:27:56 · 181 阅读 · 0 评论 -
211 添加与搜索单词 - 数据结构设计(Trie树 + dfs)
1. 问题描述:请你设计一个数据结构,支持添加新单词和查找字符串是否与任何先前添加的字符串匹配 。实现词典类 WordDictionary :WordDictionary() 初始化词典对void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配;bool search(word) 如果数据结构中存在字符串与word 匹配,则返回 true ;否则,返回false 。word 中可能包含一些 '.' ,每个. 都可以表示任何一个字母。示例:输入:["Wo...原创 2021-05-08 22:29:44 · 189 阅读 · 0 评论 -
208 实现 Trie (前缀树)
1. 问题描述:Trie(发音类似 "try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。boolean star原创 2021-05-08 09:57:33 · 170 阅读 · 0 评论