
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
package tiretree;
public class {
private Node root;
public () {
root = new Node();
}
public void insert(String str) {
Node t = root;
for (int i = 0; i < str.length(); i++) {
if (t.nodes[str.charAt(i) - 'a'] == null) {
Node node = new Node();
t.nodes[str.charAt(i) - 'a'] = node;
}
t = t.nodes[str.charAt(i) - 'a'];
}
t.isStr = true;
}
public boolean find(String str) {
Node t = root;
for (int i = 0; i < str.length() && t != null; i++) {
t = t.nodes[str.charAt(i) - 'a'];
}
return (t != null && t.isStr);
}
private class Node {
boolean isStr;
Node[] nodes;
Node() {
isStr = false;
nodes = new Node[26];
}
}
public static void main(String[] args) {
TireTree tireTree = new TireTree();
tireTree.insert("abc");
tireTree.insert("abc");
tireTree.insert("bcd");
tireTree.insert("cdefg");
tireTree.insert("aaaaa");
System.out.println("abc:" + tireTree.find("abc"));
System.out.println("abd:" + tireTree.find("abd"));
System.out.println("abcd:" + tireTree.find("abcd"));
System.out.println("abcd:" + tireTree.find("ab"));
System.out.println("bc:" + tireTree.find("bc"));
System.out.println("bcd:" + tireTree.find("bcd"));
System.out.println("cdefg:" + tireTree.find("cdefg"));
System.out.println("aaaaa:" + tireTree.find("aaaaa"));
}
}
|
运行结果为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
abc:true
abd:false
abcd:false
abcd:false
bc:false
bcd:true
cdefg:true
aaaaa:true
|
作者:有奶喝先森
链接:http://www.jianshu.com/p/88bb88051730
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
近期评论