• Xiaohe-LeetCode 288 Unique Word Abbreviation


    This question is confusing. But if we see the wrong cases below, we can understand the meaning.

    If word's abbr is not in dic, then return true.

    Else if word's abbr is in dic 

      {The matching words in dic are all exactly the same word to the input word: return true. else return false}

    Else return false;

    (1)Right Solution:(need to find better solution)

    59.64%,256ms. The interesting parts is that if I use d.size() instead of d.length() here, the efficiency will drop down to 

    292 ms, 29.2%.

    class ValidWordAbbr {
    public:
    ValidWordAbbr(vector<string> &dictionary) {
    for (string& d : dictionary) {
    int n = d.length();
    string abbr = d[0] + to_string(n) + d[n - 1];
    mp[abbr].insert(d);
    }
    }

    bool isUnique(string word) {
    int n = word.length();
    string abbr = word[0] + to_string(n) + word[n - 1];
    return mp[abbr].count(word) == mp[abbr].size();
    }
    private:
    unordered_map<string, unordered_set<string>> mp;
    };

    (2) Wrong Case:

    Input:["dog"],isUnique("dig"),isUnique("dug"),isUnique("dag"),isUnique("dog"),isUnique("doge")
    Output:[true,true,true,true,true]
    Expected:[false,false,false,true,true]
     
    Input:[],isUnique("hello")
    Output:[false]
    Expected:[true]
     
    Input:["hello"],isUnique("hello")
    Output:[false]
    Expected:[true]
     
    Input:["a","a"],isUnique("a")
    Output:[false]
    Expected:[true]
     
  • 相关阅读:
    Graylog安装操作
    CF1012C Hills
    MySQL 加锁处理分析
    2.22考试
    int(1)和int(11)是否有区别?
    「LibreOJ NOI Round #1」验题
    MySQL一致性非锁定读
    [学习笔记]凸优化/WQS二分/带权二分
    MySQL latch小结
    [八省联考2018]林克卡特树lct——WQS二分
  • 原文地址:https://www.cnblogs.com/CathyXiaohe/p/4994498.html
Copyright © 2020-2023  润新知