标签:
完全抄答案
class TrieNode { // Initialize your data structure here. // ref http://www.programcreek.com/2014/05/leetcode-implement-trie-prefix-tree-java/ char c; HashMap<Character, TrieNode> children = new HashMap<Character, TrieNode>(); boolean isLeaf; public 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; 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){ HashMap<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{ return null; } } return t; } }
trie 数 结构
http://www.cnblogs.com/huangxincheng/archive/2012/11/25/2788268.html
code
ref http://www.programcreek.com/2014/05/leetcode-implement-trie-prefix-tree-java/
标签:
原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4532336.html