第十章:前缀树
面试题62:实现前缀树
题目
参考代码
class Trie {
private TrieNode root;
static class TrieNode {
TrieNode children[];
boolean isWord;
public TrieNode() {
children = new TrieNode[26];
}
}
public Trie() {
root = new TrieNode();
}
public void insert(String word) {
TrieNode node = root;
for (char ch : word.toCharArray()) {
if (node.children[ch - 'a'] == null) {
node.children[ch - 'a'] = new TrieNode();
}
node = node.children[ch - 'a'];
}
node.isWord = true;
}
public boolean search(String word) {
TrieNode node = root;
for (char ch : word.toCharArray()) {
if (node.children[ch - 'a'] == null) {
return false;
}
node = node.children[ch - 'a'];
}
return node.isWord;
}
public boolean startsWith(String prefix) {
TrieNode node = root;
for (char ch : prefix.toCharArray()) {
if (node.children[ch - 'a'] == null) {
return false;
}
node = node.children[ch - 'a'];
}
return true;
}
}面试题63:替换单词
题目
参考代码
面试题64:神奇的字典
题目
参考代码
面试题65:最短的单词编码
题目
参考代码
面试题66:单词之和
题目
参考代码
面试题67:最大的异或
题目
参考代码
Last updated