Leetcode 208. Implement Trie (Prefix Tree)
来源:互联网 发布:node.js实战 第1季 编辑:程序博客网 时间:2024/06/05 06:37
question
Leetcode 208. Implement Trie (Prefix Tree)
mplement a trie with insert
, search
, and startsWith
methods.
Analysis:
For the trie, we need to apply insert, search, and startWith which is to find the prefix in a string
http://dongxicheng.org/structure/trietree/
http://www.programcreek.com/2014/05/leetcode-implement-trie-prefix-tree-java/
Code
class TrieNode { // Initialize your data structure here. char c; HashMap<Character, TrieNode> children = new HashMap<Character, TrieNode>(); boolean isLeaf; public TrieNode() { } //This is to provide a char to define a trieNode public TrieNode(char c){ this.c = c; }}public class Trie { private TrieNode root; public Trie() { root = new TrieNode(); } // Inserts a word into the trie. public void insert(String word) { HashMap<Character, TrieNode> children = root.children; for(int i = 0; i < word.length(); i++){ char c = word.charAt(i); TrieNode t; if(children.containsKey(c)){ t = children.get(c); } else{ t = new TrieNode(c); children.put(c,t); } children = t.children; //This is to set the leaf node if(i == word.length() - 1) t.isLeaf =true; } } // Returns if the word is in the trie. public boolean search(String word) { TrieNode t = searchNode(word); if(t != null && t.isLeaf) return true; else return false; } // Returns if there is any word in the trie // that starts with the given prefix. public boolean startsWith(String prefix) { if(searchNode(prefix) == null) return false; else return true; } public TrieNode searchNode(String str){ Map<Character, TrieNode> children = root.children; TrieNode t = null; for(int i=0; i<str.length(); i++){ char c = str.charAt(i); if(children.containsKey(c)){ t = children.get(c); children = t.children; }else{ //if it return null, it means that we can not find this word return null; } } return t; }}// Your Trie object will be instantiated and called as such:// Trie trie = new Trie();// trie.insert("somestring");// trie.search("key");
文章内容 切换到MarkDown编辑器
0 0
- LeetCode 208. Implement Trie (Prefix Tree)
- Leetcode 208. Implement Trie (Prefix Tree)
- 208. Implement Trie (Prefix Tree) LeetCode
- leetcode 208. Implement Trie (Prefix Tree)
- [LeetCode]208. Implement Trie (Prefix Tree)
- [leetcode] 208. Implement Trie (Prefix Tree)
- Leetcode 208. Implement Trie (Prefix Tree)
- Leetcode 208. Implement Trie (Prefix Tree)
- LeetCode-208.Implement Trie (Prefix Tree)
- LeetCode - 208. Implement Trie (Prefix Tree)
- [LeetCode] 208. Implement Trie (Prefix Tree)
- Leetcode 208. Implement Trie (Prefix Tree)
- [LeetCode]208. Implement Trie (Prefix Tree)
- leetcode-208. Implement Trie (Prefix Tree)
- Leetcode 208. Implement Trie (Prefix Tree)
- LeetCode 208. Implement Trie (Prefix Tree)
- [LeetCode]208. Implement Trie (Prefix Tree)
- leetcode 208. Implement Trie (Prefix Tree)
- IE浏览器在地址栏针对param直接输入中文导致乱码的解决方案
- Java 自定义异常
- Leetcode-259. 3 Sum Smaller
- 使用docker volumes容器
- Windows 下 ORA-12560: TNS: 协议适配器错误的问题
- Leetcode 208. Implement Trie (Prefix Tree)
- Mac笔电盒盖保持声音输出?
- Leetcode 29 - Divide Two Integers
- POJ 1661 Help Jimmy
- Leetcode - 137. Single Number II
- Leetcode 215. Kth Largest Element in an Array
- Leetcode 295. Find Median from Data Stream
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- Leetcode 32 - Longest Valid Parentheses