Skip to content

Commit e1831d0

Browse files
Create Day 14 Implement Trie (Prefix Tree).cpp
1 parent 85042b4 commit e1831d0

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
PROBLEM:
2+
3+
Implement a trie with insert, search, and startsWith methods.
4+
5+
Example:
6+
Trie trie = new Trie();
7+
8+
trie.insert("apple");
9+
trie.search("apple"); // returns true
10+
trie.search("app"); // returns false
11+
trie.startsWith("app"); // returns true
12+
trie.insert("app");
13+
trie.search("app"); // returns true
14+
15+
Note:
16+
You may assume that all inputs are consist of lowercase letters a-z.
17+
All inputs are guaranteed to be non-empty strings.
18+
19+
20+
21+
SOLUTION:
22+
23+
24+
class Trie {
25+
private:
26+
unordered_set<string> s,s1;
27+
public:
28+
/** Initialize your data structure here. */
29+
Trie() {
30+
31+
}
32+
33+
/** Inserts a word into the trie. */
34+
void insert(string word) {
35+
s.insert(word);
36+
37+
string m="";
38+
for(int i=0;i<word.size();i++)
39+
{
40+
m+=word[i];
41+
s1.insert(m);
42+
}
43+
44+
}
45+
46+
/** Returns if the word is in the trie. */
47+
bool search(string word) {
48+
49+
if(s.find(word)!=s.end())
50+
return true;
51+
else
52+
return false;
53+
54+
}
55+
56+
/** Returns if there is any word in the trie that starts with the given prefix. */
57+
bool startsWith(string prefix) {
58+
59+
if(s1.find(prefix)!=s1.end())
60+
return true;
61+
else
62+
return false;
63+
64+
65+
}
66+
};
67+
68+
/**
69+
* Your Trie object will be instantiated and called as such:
70+
* Trie* obj = new Trie();
71+
* obj->insert(word);
72+
* bool param_2 = obj->search(word);
73+
* bool param_3 = obj->startsWith(prefix);
74+
*/

0 commit comments

Comments
 (0)