zoukankan      html  css  js  c++  java
  • 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]
     
  • 相关阅读:
    mysql-community-server-5.7.24 & 5.7.31 (5.6.35 升级到 5.7.24)
    企业 数据 能力 中台 大数据平台 CRM
    Tomcat日志切割配置
    你不知道的 Blob
    细说websocket快速重连机制
    DNS反向查询
    从安全的角度看待DNS
    LVS 负载均衡集群
    Linux服务器配置DNS解析
    react修改state的值
  • 原文地址:https://www.cnblogs.com/CathyXiaohe/p/4994498.html
Copyright © 2011-2022 走看看