leetcode 676. Implement Magic Dictionary
来源:互联网 发布:成语接龙作弊软件 编辑:程序博客网 时间:2024/05/21 10:21
原题:
Implement a magic directory with buildDict
, and search
methods.
For the method buildDict
, you'll be given a list of non-repetitive words to build a dictionary.
For the method search
, you'll be given a word, and judge whether if you modify exactly one character into another character in this word, the modified word is in the dictionary you just built.
Example 1:
Input: buildDict(["hello", "leetcode"]), Output: NullInput: search("hello"), Output: FalseInput: search("hhllo"), Output: TrueInput: search("hell"), Output: FalseInput: search("leetcoded"), Output: False
Note:
- You may assume that all the inputs are consist of lowercase letters
a-z
. - For contest purpose, the test data is rather small by now. You could think about highly efficient algorithm after the contest.
- Please remember to RESET your class variables declared in class MagicDictionary, as static/class variables are persisted across multiple test cases. Please see here for more details.
代码如下:
typedef struct { char* string; int len; struct MagicDictionary* next;} MagicDictionary;/** Initialize your data structure here. */MagicDictionary* magicDictionaryCreate() { MagicDictionary* head; head=(MagicDictionary*)malloc(sizeof(MagicDictionary)); head->next=NULL; return head;}/** Build a dictionary through a list of words */void magicDictionaryBuildDict(MagicDictionary* obj, char** dict) { if(dict==NULL||*dict==NULL) return; //这个地方写的太脑残了 int dictLen=0; char** q=dict; while(*(q+dictLen)!=NULL) { dictLen++; } printf("%d",dictLen); for(int n=0;n<dictLen;n++) { MagicDictionary* p; p=(MagicDictionary*)malloc(sizeof(MagicDictionary)); int stringLen=strlen(*dict+n); p->string=(char*)malloc(sizeof(char)*(stringLen+1)); strcpy(p->string,*(dict+n)); p->len=stringLen; printf("%s",p->string); p->next=obj->next; obj->next=p; }}/** Returns if there is any word in the trie that equals to the given word after modifying exactly one character */bool magicDictionarySearch(MagicDictionary* obj, char* word) { int wordLen=strlen(word); MagicDictionary* p=obj->next; while(p!=NULL) { if(p->len!=wordLen) { p=p->next; } else { int diff=0; for(int n=0;n<p->len;n++) { if(*(word+n)!=*(p->string+n)) diff++; } if(diff==1) return true; else { p=p->next; } } } return false;}void magicDictionaryFree(MagicDictionary* obj) { MagicDictionary* p=obj->next; free(obj); while(p!=NULL) { free(p->string); MagicDictionary* temp=p; p=temp->next; free(temp); }}/** * Your MagicDictionary struct will be instantiated and called as such: * struct MagicDictionary* obj = magicDictionaryCreate(); * magicDictionaryBuildDict(obj, dict); * bool param_2 = magicDictionarySearch(obj, word); * magicDictionaryFree(obj); */我只能说leetcode对c太不友好了,欺负我们数据结构没有对应的属性或者函数是吧。。。
你tm让我怎么找二维数组的一维长度。。。。
难受。。。 搜了半天也没有好办法。
阅读全文
0 0
- Leetcode 676. Implement Magic Dictionary
- leetcode 676. Implement Magic Dictionary
- leetcode 676. Implement Magic Dictionary
- leetcode 676. Implement Magic Dictionary
- 676. Implement Magic Dictionary
- 676. Implement Magic Dictionary
- 676. Implement Magic Dictionary
- LeetCode.676 Implement Magic Dictionary
- Hash Table -- Leetcode problem676. Implement Magic Dictionary
- LWC 49:676. Implement Magic Dictionary
- Implement Magic Dictionary问题及解法
- ios safe dictionary simple implement
- Leetcode-Pointer Magic
- LeetCode 269. Alien Dictionary
- Leetcode 269. Alien Dictionary
- Leetcode 269. Alien Dictionary
- LeetCode: Implement strStr()
- [Leetcode] Implement strstr()
- Druid大数据实时处理的开源分布式系统——Broker
- samohyes的心情笔记(4)
- linux docker删除镜像
- 关于C语言中 int型变量和unsigned int变量范围之间的关系
- 阿里云双十一优惠来啦 双11优惠券领到手软!
- leetcode 676. Implement Magic Dictionary
- 直方图均衡化
- CAD版本转换详细教程
- 时间序列分析框架
- Android兼容包Support v4.v7.v13区别与应用场景
- Linux 高精度定时器hrtimers简单介绍和应用场景
- Windows驱动必备的API
- 微信公众号全局返回码及其说明
- 解决CentOs7.2.1511下mysql5.6.38版本max_connections设置失败的问题