leetcode 677. Map Sum Pairs

来源:互联网 发布:气相色谱图数据怎么看 编辑:程序博客网 时间:2024/06/11 14:58

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.

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

本题和上一题一样直接暴力查询即可,本题的本意应该是使用前缀树,但是这个有点麻烦,所以我这里直接暴力去做

代码如下:

#include <iostream>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#include <string>#include <climits>#include <algorithm>#include <sstream>#include <functional>#include <bitset>#include <numeric>#include <cmath>#include <regex>using namespace std;class MapSum {public:    map<string, int> mmp;    /** Initialize your data structure here. */    MapSum()     {    }    void insert(string key, int val)     {        mmp[key] = val;    }    int sum(string prefix)     {        int s = 0;        for (auto one : mmp)        {            if (prefix == one.first.substr(0, prefix.length()))                s += one.second;        }        return s;    }};/*** Your MapSum object will be instantiated and called as such:* MapSum obj = new MapSum();* obj.insert(key,val);* int param_2 = obj.sum(prefix);*/
原创粉丝点击