Leetcode no. 208

来源:互联网 发布:淘宝怎么看同行点击率 编辑:程序博客网 时间:2024/04/29 20:50

208. Implement Trie (Prefix Tree)


Implement a trie with insertsearch, and startsWith methods.

Note:
You may assume that all inputs are consist of lowercase letters a-z.


class TrieNode {    // Initialize your data structure here.    public char val;    public TrieNode[] children= new TrieNode[26];    public boolean isWord;    public TrieNode(){}    public TrieNode(char c) {        this.val= c;    }}public class Trie {    private TrieNode root;    public Trie() {        root = new TrieNode();        root.val= ' ';    }    // Inserts a word into the trie.    public void insert(String word) {        TrieNode n= root;        for (int i=0; i<word.length(); i++){            char c= word.charAt(i);            if (n.children[c-'a'] ==null)                n.children[c-'a']= new TrieNode(c);            n= n.children[c-'a'];        }        n.isWord= true;    }    // Returns if the word is in the trie.    public boolean search(String word) {        TrieNode n= root;        for (int i=0; i<word.length(); i++){            char c= word.charAt(i);            if (n.children[c-'a'] ==null) return false;            n= n.children[c-'a'];        }        return n.isWord;    }    // Returns if there is any word in the trie    // that starts with the given prefix.    public boolean startsWith(String prefix) {        TrieNode n= root;        for (int i=0; i<prefix.length(); i++){            char c= prefix.charAt(i);            if (n.children[c-'a'] ==null) return false;            n= n.children[c-'a'];        }        return true;    }}// Your Trie object will be instantiated and called as such:// Trie trie = new Trie();// trie.insert("somestring");// trie.search("key");


0 0
原创粉丝点击