标签:search i++ algorithm leetcode mem pre method ase string
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: Null
Input: search("hello"), Output: False
Input: search("hhllo"), Output: True
Input: search("hell"), Output: False
Input: search("leetcoded"), Output: False
Note:
a-z.
Runtime: 0 ms, faster than 100.00% of C++ online submissions for Implement Magic Dictionary.
class MagicDictionary {
public:
  vector<string> strvec;
  explicit MagicDictionary() = default;
  void buildDict(const vector<string>& dict) {
    strvec = dict;
  }
  bool search(const string& word) {
    
    for(auto& vs : strvec){
      if(vs.size() != word.size()) continue;
      int idx = -1;
      bool fit = true;
      unordered_set<char> s;
      for(int i=0; i<word.size(); i++){
        s.insert(word[i]);
        if(idx == -1 && word[i] != vs[i]) {idx = i;}
        else if(idx != -1 && word[i] != vs[i]) {fit = false; break;}
      }
      if(idx != -1 && fit && s.count(word[idx])) return true;
    }
    return false;
  }
};
LC 676. Implement Magic Dictionary
标签:search i++ algorithm leetcode mem pre method ase string
原文地址:https://www.cnblogs.com/ethanhong/p/10208027.html