美文网首页
208. Implement Trie (Prefix Tree

208. Implement Trie (Prefix Tree

作者: 夜皇雪 | 来源:发表于2016-11-24 06:05 被阅读0次
    class TrieNode {
        // Initialize your data structure here.
        
        public boolean isWord;
        public TrieNode[] children=new TrieNode[26];
        public TrieNode() {
            
        }
    }
    
    public class Trie {
        private TrieNode root;
    
        public Trie() {
            root = new TrieNode();
        }
    
        // Inserts a word into the trie.
        public void insert(String word) {
            TrieNode ws=root;
            for(int i=0;i<word.length();i++){
                char c=word.charAt(i);
                if(ws.children[c-'a']==null) ws.children[c-'a']=new TrieNode();
                ws=ws.children[c-'a'];
            }
            ws.isWord=true;
        }
    
        // Returns if the word is in the trie.
        public boolean search(String word) {
            TrieNode ws=root;
            for(int i=0;i<word.length();i++){
                char c=word.charAt(i);
                if(ws.children[c-'a']==null) return false;
                ws=ws.children[c-'a'];
            }
            return ws.isWord;
        }
    
        // Returns if there is any word in the trie
        // that starts with the given prefix.
        public boolean startsWith(String prefix) {
            TrieNode ws=root;
            for(int i=0;i<prefix.length();i++){
                char c=prefix.charAt(i);
                if(ws.children[c-'a']==null) return false;
                ws=ws.children[c-'a'];
            }
            return true;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:208. Implement Trie (Prefix Tree

          本文链接:https://www.haomeiwen.com/subject/sjhbpttx.html