


1) MapSum(): Ninja has to initialize the ‘MapSum’.
2) insert(‘KEY’, ‘VAL’): Ninja has to insert this key-value pair in this ‘MapSum’.
3) sum(‘PREFIX’): Ninja has to find the sum of all values whose prefix of the keys is equal to ‘PREFIX’
During insertion, In the ‘MapSum’ if a ‘KEY’ is already present in the ‘MapSum’ then replace it with the new one.
The first line contains a single integer ‘T’ representing the number of test cases.
The first line of each test case will contain a single integer ‘N’ which denotes how many times the functions(as discussed above) we call.
The next “N” lines contain the string and key-value pair or a string, the first one is the name of the function and the second one is a ‘key-value’ or ‘PREFIX’.
For each test case, complete all the functions as we discussed above.
Output for every test case will be printed in a separate line.
You don’t need to print anything; It has already been taken care of. Just implement the given function.
1 <= ‘T’ <= 50
2 <= ‘N’ <= 10000
1 <= |‘KEY’|, |‘PREFIX’| <= 50
1 <= ‘VAL’ <= 1000
Where |‘KEY’| and |’PREFIX’| denotes the length of the string ‘KEY’ and ‘PREFIX’. ‘VAL’ denotes the value of the key-value pair.
Time limit: 1 sec
First, we declare a ‘map’ HashMap in which we store all the key-value pairs. Then for the second function i.e ‘sum’ we simply iterate through the ‘map’ and check whether the ‘KEY’ of the current key-value pairs contains a prefix equal to the given prefix.
The steps are as follows:
For insert(‘KEY’, ‘VALUE’) function:
We declare two HashMap ‘allValues’ and ‘allPrefixes’ in which we store all key-value pairs and all prefixes of every key-value pair.
If the current ‘KEY’ is already present in the map ‘allValues’ then we replace the ‘VAl’ at every prefix which is present in the ‘allPrefixes’ map.
For sum(‘PREFIX’) function:
We can simply return the ‘VAL’ that is present at the ‘KEY’ which is equal to ‘PREFIX’.
The steps are as follows:
This approach is similar to the above approach but now we are storing all the prefixes in a ‘TRIE’ data structure.
The steps are as follows: