【快乐水题】677. 键值映射
生活随笔
收集整理的這篇文章主要介紹了
【快乐水题】677. 键值映射
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原題:
力扣鏈接:677. 鍵值映射
題目簡述:
實現一個 MapSum 類,支持兩個方法,insert 和 sum:
MapSum() 初始化 MapSum 對象
void insert(String key, int val) 插入 key-val 鍵值對,字符串表示鍵 key ,整數表示值 val 。如果鍵 key 已經存在,那么原來的鍵值對將被替代成新的鍵值對。
int sum(string prefix) 返回所有以該前綴 prefix 開頭的鍵 key 的值的總和。
解題思路
1.利用map來做map;
2.查詢前綴要使用substr(),第一把沒仔細審題使用了find()提交失敗了;
3.over;
C++代碼:
class MapSum { public:MapSum() {}void insert(string key, int val) {umap[key] = val;}int sum(string prefix) {int ret = 0;int i = 0;for(auto it = umap.begin(); it != umap.end(); it++){if(it->first.substr(0, prefix.size()) == prefix){ret += it->second;}}return ret;}private:unordered_map<string, int> umap; };/*** Your MapSum object will be instantiated and called as such:* MapSum* obj = new MapSum();* obj->insert(key,val);* int param_2 = obj->sum(prefix);*/力扣結果展示:
總結
以上是生活随笔為你收集整理的【快乐水题】677. 键值映射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这年头「野路子」产品太多了
- 下一篇: 【快乐水题】594. 最长和谐子序列