Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- /*
- * Complete the contacts function below.
- */
- struct TrieNode{
- std::vector<int> val;
- std::vector<TrieNode*> children;
- TrieNode(int f) {
- children = std::vector<TrieNode*> (26,nullptr);
- val = std::vector<int> (26,f);
- }
- };
- void Push(std::string& s, int ii, TrieNode* root) {
- if (ii==s.length()) {
- return;
- }
- if (root->children[s[ii]-'a']) {
- root->val[s[ii]-'a'] += 1;
- Push (s, ii+1, root->children[s[ii]-'a']);
- }
- else {
- root->children[s[ii]-'a'] = new TrieNode(0);
- root->val[s[ii]-'a'] += 1;
- Push (s, ii+1, root->children[s[ii]-'a']);
- }
- }
- vector<int> contacts(vector<vector<string>> queries) {
- /*
- * Write your code here.
- */
- TrieNode* root = new TrieNode (0);
- vector<int> out;
- for (const auto& it: queries) {
- if (it[0]=="add") {
- Push(it[1], 0, root);
- }
- else {
- }
- }
- }
- int main()
- {
- ofstream fout(getenv("OUTPUT_PATH"));
- int queries_rows;
- cin >> queries_rows;
- cin.ignore(numeric_limits<streamsize>::max(), '\n');
- vector<vector<string>> queries(queries_rows);
- for (int queries_row_itr = 0; queries_row_itr < queries_rows; queries_row_itr++) {
- queries[queries_row_itr].resize(2);
- for (int queries_column_itr = 0; queries_column_itr < 2; queries_column_itr++) {
- cin >> queries[queries_row_itr][queries_column_itr];
- }
- cin.ignore(numeric_limits<streamsize>::max(), '\n');
- }
- vector<int> result = contacts(queries);
- for (int result_itr = 0; result_itr < result.size(); result_itr++) {
- fout << result[result_itr];
- if (result_itr != result.size() - 1) {
- fout << "\n";
- }
- }
- fout << "\n";
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement