Word Queries (HackerEarth Problem)

Ritwik Chakraborty
1 min readJul 20, 2021

Problem Set

struct node{int child = 0;node *arr[26];};node *getNode(){node *x = new node();for (int i = 0; i < 26; i++)x->arr[i] = NULL;return x;}void insert(node *root, string s){int n = s.size();node *tempRoot = root;for (int i = 0; i < n; i++){int ind = s[i] - 'a';if (tempRoot->arr[ind] == NULL){tempRoot->arr[ind] = getNode();}tempRoot = tempRoot->arr[ind];tempRoot->child++;}}int find_trie(node *root, string s){int n = s.size();node *tempRoot = root;for (int i = 0; i < n; i++){int ind = s[i] - 'a';if (tempRoot->arr[ind] == NULL){return 0;}tempRoot = tempRoot->arr[ind];}return tempRoot->child;}void solve(){node *root = getNode();ll n, m;cin >> n >> m;REP(i, 0, n){string s;cin >> s;insert(root, s);}REP(i, 0, m){string s;cin >> s;cout << find_trie(root, s) << endl;}}

--

--