日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 676. 实现一个魔法字典(哈希)

發布時間:2024/7/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 676. 实现一个魔法字典(哈希) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

實現一個帶有buildDict, 以及 search方法的魔法字典。

對于buildDict方法,你將被給定一串不重復的單詞來構建一個字典。

對于search方法,你將被給定一個單詞,并且判定能否只將這個單詞中一個字母換成另一個字母,使得所形成的新單詞存在于你構建的字典中。

示例 1: Input: buildDict(["hello", "leetcode"]), Output: Null Input: search("hello"), Output: False Input: search("hhllo"), Output: True Input: search("hell"), Output: False Input: search("leetcoded"), Output: False

注意:
你可以假設所有輸入都是小寫字母 a-z。
為了便于競賽,測試所用的數據量很小。你可以在競賽結束后,考慮更高效的算法。
請記住重置MagicDictionary類中聲明的類變量,因為靜態/類變量會在多個測試用例中保留。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/implement-magic-dictionary
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 建立原始字典的哈希表,以及單詞長度的記錄表
  • 查找時,長度必須相等,且變形詞在哈希表中,且變形詞不為原詞
class MagicDictionary {unordered_set<string> origin;unordered_set<int> len;string temp;int i;char ch; public:/** Initialize your data structure here. */MagicDictionary() {}/** Build a dictionary through a list of words */void buildDict(vector<string> dict) {for(string& word : dict) {origin.insert(word);len.insert(word.length());}}bool search(string word) {if(!len.count(word.length()))return false;for(i = 0; i < word.size(); ++i){temp = word;for(ch = 'a'; ch <= 'z'; ++ch){temp[i] = ch;if(origin.count(temp) && temp != word)return true;} }return false;} };

總結

以上是生活随笔為你收集整理的LeetCode 676. 实现一个魔法字典(哈希)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。