第14周Map Sum Pairs

Map Sum Pairs

Leetcode algorithms problem 677:Map Sum Pairs

  • 問題描述

    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.

  • 例子

    Input: insert(“apple”, 3), Output: Null
    Input: sum(“ap”), Output: 3
    Input: insert(“app”, 2), Output: Null
    Input: sum(“ap”), Output: 5

代碼

class MapSum {
private:
    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 sum = 0, n = prefix.size();
        map<string,int>::iterator it;
        it = mp.begin();
        while(it != mp.end())
        {
            if(it->first.substr(0, n) == prefix){
                sum += it->second;
            }
            it ++;         
        }
        return sum;
    }
};

/**
 * Your MapSum object will be instantiated and called as such:
 * MapSum obj = new MapSum();
 * obj.insert(key,val);
 * int param_2 = obj.sum(prefix);
 */

時間複雜度: O(n)
空間複雜度: O(1)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章