Sunday, September 17, 2017

677. Map Sum Pairs

https://leetcode.com/problems/map-sum-pairs/description/
Implement a MapSum class with insert, and sum methods.
For the method insert, you'll be given a pair of (string, integer). The string represents the key and the integer represents the value. If the key already existed, then the original key-value pair will be overridden to the new one.
For the method sum, you'll be given a string representing the prefix, and you need to return the sum of all the pairs' value whose key starts with the prefix.
class MapSum {
    unordered_map<string,int> mp;
public:
    /** Initialize your data structure here. */
    MapSum() {
    }
    void insert(string key, int val) {
        mp[key] = val;
    }
    int sum(string prefix) {
        int s = 0;
        for(auto & x: mp) {
            if(x.first.size()>=prefix.size()) {
                int i;
                for(i=0; i<prefix.size(); i++) {
                    if(x.first[i]!=prefix[i]) break;
                }
                if(i==prefix.size()) s += x.second;
            }
        }
        return s;
    }
};

No comments:

Post a Comment