1
class Solution {
2
public:
3
int check(string &s, unordered_map<string, int> &mp) {
4
string temp;
5
temp.push_back(s[0]); // for maintaining prefix string
6

7
for (int i = 1; i < s.size(); i++) {
8
if (s[i] == '/') {
9
if (mp.count(temp)) // for checking prefix exist in map
10
return true;
11
temp += s[i];
12
} else
13
temp += s[i];
14
}
15
mp[s] = 1; // if string doesnot exist put it in map
16
return false;
17
}
18
vector<string> removeSubfolders(vector<string> &folder) {
19
unordered_map<string, int> mp;
20
sort(folder.begin(), folder.end());
21
vector<string> ans;
22

23
for (auto it : folder) {
24
if (!check(it, mp)) ans.push_back(it);
25
}
26

27
return ans;
28
}
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0