-
Notifications
You must be signed in to change notification settings - Fork 1
/
字典树tries.js
83 lines (77 loc) · 1.62 KB
/
字典树tries.js
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
class Tries {
constructor() {
this.node = {};
}
insert(word) {
let node = this.node;
for (const w of word) {
if (!node[w]) {
node[w] = {};
}
node = node[w];
}
node.endOfWord = true;
}
search(word) {
let node = this.node;
for (const w of word) {
if (!node[w]) {
return false;
}
node = node[w];
}
return node.endOfWord;
}
print() {
return JSON.stringify(this.node, null, 2);
}
}
const strTries = new Tries();
strTries.insert("abc");
strTries.insert("b");
strTries.insert("bcd");
strTries.insert("c");
strTries.insert("d");
// tries.insert('没朋友在这里')
// tries.insert('aac')
console.log(strTries.print());
// console.log(tries.search('aac'))
// const target = "55";
// tries.insert(target);
// const originText = "5554555";
// function searchTarget() {
// const len = target.length;
// const totalLen = originText.length;
// let i = 0;
// const result = [];
// while (i < totalLen) {
// const tmp = originText.substr(i, len);
// const bool = tries.search(tmp);
// console.log(bool);
// if (bool) {
// result.push("<b>" + tmp + "</b>");
// i = i + len;
// } else {
// result.push(originText[i]);
// i++;
// }
// if (i + len >= totalLen) {
// break;
// }
// }
// return result;
// }
// // const res = searchTarget()
// // console.log('res', res.join(''))
// function Test() {
// let i = 0;
// while (i < 5) {
// i++;
// if (i == 2) {
// continue;
// }
// console.log("i", i);
// }
// return "b";
// }
// console.log("aaaa", Test());