如何制作自己的网站并且插口代码,成都市装修公司前十强,全球农村电商平台有哪些,怎么制作图片模板题目链接
实现 Trie (前缀树)
题目描述 注意点
word 和 prefix 仅由小写英文字母组成
解答思路
首先要理解前缀树是什么#xff0c;参照该篇文章【图解算法】模板变式——带你彻底搞懂字典树(Trie树)在了解前缀树是什么后#xff0c;设计前缀树就会更加容易#xff0c;…题目链接
实现 Trie (前缀树)
题目描述 注意点
word 和 prefix 仅由小写英文字母组成
解答思路
首先要理解前缀树是什么参照该篇文章【图解算法】模板变式——带你彻底搞懂字典树(Trie树)在了解前缀树是什么后设计前缀树就会更加容易因为本题中所有单词都仅由小写英文字母组成所以哈希表只需要26个空间即可若有些单词具有相同的前缀则可视为它们有相同的父节点也就是相当于构造一棵最大有26个子节点的二叉树构造树的过程可以由以下图片表示 代码
class Trie {TrieNode root;public Trie() {root new TrieNode();}public void insert(String word) {TrieNode currNode root;for (char c : word.toCharArray()) {if (currNode.childNode[c - a] null) {currNode.childNode[c - a] new TrieNode();}currNode currNode.childNode[c - a];}currNode.isWord true;}public boolean search(String word) {TrieNode currNode root;for (char c : word.toCharArray()) {if (currNode.childNode[c - a] null) {return false;}currNode currNode.childNode[c - a];}if (!currNode.isWord) {return false;}return true;}public boolean startsWith(String prefix) {TrieNode currNode root;for (char c : prefix.toCharArray()) {if (currNode.childNode[c - a] null) {return false;}currNode currNode.childNode[c - a];}return true;}
}class TrieNode {boolean isWord;TrieNode[] childNode new TrieNode[26];
}关键点
学习前缀树的相关知识构造前缀树的过程