-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtrie.txt
56 lines (48 loc) · 779 Bytes
/
trie.txt
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
typedef struct Trie
{
map <char,Trie*> m;
bool end;
Trie()
{
end = false;
}
}Trie;
void insert(Trie *node,string s)
{
ll i;
for(i=0;i<s.size();i++)
{
if((node->m.find(s[i]))==node->m.end())
{
node->m[s[i]] = new Trie();
}
node = node->m[s[i]];
}
node->end = true;
}
ll search(Trie *node,string s)
{
ll i;
for(i=0;i<s.size();i++)
{
if((node->m.find(s[i]))==node->m.end())
{
break;
}
node = node->m[s[i]];
}
return i;
}
//main function
Trie *root = new Trie();
insert(root,s);
index = search(root,*it);
if(index==s.size())
{
flag=1;
break;
}
else
{
filters.insert(s.substr(0,index+1));
}