[leetcode] 676. Implement Magic Dictionary

网友投稿 803 2022-08-23

[leetcode] 676. Implement Magic Dictionary

[leetcode] 676. Implement Magic Dictionary

Description

Implement a magic dictionary 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.

分析

题目的意思是:实现一个magic dictionary的功能,要实现search,buildDict两大函数。

用了一个hash表,用单词的size当作key,单词当作值,设计不错。想到了就很简单,我也做不出来,学习一下,努力加油。

代码

class MagicDictionary {private: unordered_map> m;public: /** Initialize your data structure here. */ MagicDictionary() { } /** Build a dictionary through a list of words */ void buildDict(vector dict) { for(string word:dict){ m[word.size()].push_back(word); } } /** Returns if there is any word in the trie that equals to the given word after modifying exactly one character */ bool search(string word) { for(string str:m[word.size()]){ int cnt=0,i=0; for(;i1){ break; } } } if(i==word.size()&&cnt==1){ return true; } } return false; }};/** * Your MagicDictionary object will be instantiated and called as such: * MagicDictionary obj = new MagicDictionary(); * obj.buildDict(dict); * bool param_2 = obj.search(word); */

参考文献

​​[LeetCode] Implement Magic Dictionary 实现神奇字典​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[leetcode] 198. House Robber
下一篇:iOS之同步请求、异步请求、GET请求、POST请求
相关文章

 发表评论

暂时没有评论,来抢沙发吧~