已考虑
- 在apple中插入app,搜索app应该为true
未解决:
hello中搜索helloa,会返回true,因为p最终指向的时最后一个符合规定的元素
static class Trie {
Trie[] trie; // 存储的是下一层的地址
int cnt; // 存储的是经过此节点的树的个数
boolean isEnd;
public Trie() {
trie=new Trie[26];
cnt=0;
isEnd=false;
}
public void insert(String word) {
Trie curr=this;
for (char c : word.toCharArray()) {
int index=c-'a';
if (curr.trie[index]==null){
curr.trie[index]=new Trie();
}
curr=curr.trie[index];
curr.cnt++;
}
curr.isEnd=true;
}
public boolean search(String word) {
Trie curr=this;
for (char c : word.toCharArray()) {
int index=c-'a';
if (curr.trie[index]==null){
return false;
}
curr=curr.trie[index];
}
return curr.isEnd;
}
public boolean startsWith(String prefix) {
Trie curr=this;
for (char c : prefix.toCharArray()) {
int index=c-'a';
if (curr.trie[index]==null){
return false;
}
curr=curr.trie[index];
}
return true;
}
}