leetcode 677. Map Sum Pairs
来源:互联网 发布:云计算在教育科研领域 编辑:程序博客网 时间:2024/06/04 21:57
原题:
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: NullInput: sum("ap"), Output: 3Input: insert("app", 2), Output: NullInput: sum("ap"), Output: 5
代码如下:
typedef struct { char* string; int value; struct MapSum* next;} MapSum;/** Initialize your data structure here. */MapSum* mapSumCreate() { MapSum* head; head=(MapSum*)malloc(sizeof(MapSum)); head->next=NULL; return head;}void mapSumInsert(MapSum* obj, char* key, int val) { MapSum* p; p=obj->next; while(p!=NULL) { if(strlen(p->string)==strlen(key)&&strstr(key,p->string)!=NULL) { p->value=val; return; } p=p->next; } p=(MapSum*)malloc(sizeof(MapSum)); p->string=(char*)malloc(sizeof(char)*(strlen(key)+1)); strcpy(p->string,key); p->value=val; p->next=obj->next; obj->next=p;}int mapSumSum(MapSum* obj, char* prefix) { int sum=0; MapSum* p; p=obj->next; while(p!=NULL) { if(strstr(p->string,prefix)==p->string) { sum+=p->value; } p=p->next; } return sum;}void mapSumFree(MapSum* obj) { MapSum* p; p=obj; obj=obj->next; free(p); while(obj!=NULL) { p=obj; obj=obj->next; free(p->string); free(p); }}/** * Your MapSum struct will be instantiated and called as such: * struct MapSum* obj = mapSumCreate(); * mapSumInsert(obj, key, val); * int param_2 = mapSumSum(obj, prefix); * mapSumFree(obj); */写个链表搞定一切。。。 其实重要的还是内存控制。
阅读全文
0 0
- leetcode 677. Map Sum Pairs
- leetcode 677. Map Sum Pairs
- leetcode 677. Map Sum Pairs
- LeetCode 677. Map Sum Pairs
- leetcode 677. Map Sum Pairs
- 677. Map Sum Pairs
- 677. Map Sum Pairs
- 677. Map Sum Pairs(JAVA)
- LWC 50:677. Map Sum Pairs
- LeetCode677. Map Sum Pairs
- Map Sum Pairs问题及解法
- 第14周Map Sum Pairs
- LeetCOde OJ Two Sum map应用
- LeetCode 1. Two Sum (c++ stl map)
- 未完成--Sum of Pairs
- [LeetCode]Palindrome Pairs
- LeetCode: Palindrome Pairs
- LeetCode 336. Palindrome Pairs
- linux基础命令(四)输入输出及vim
- spring配置解析过程
- LU分解与求解
- H264 Start Code (Annex B)
- NIO Buffer(缓冲区)之基础
- leetcode 677. Map Sum Pairs
- ubuntu14.04/16.04 下使用无线网卡fast150us 4.0
- mybatis 中 foreach collection的三种用法
- pdf.js使用教程
- php 二维数组排序
- JAVA八大基础数据?String为什么不能被继承?
- 一个好的行政MM能给公司带来巨大的影响
- 9.JMS规范
- ajax无法返回json数据报错406的解决方法