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]
     
  • 相关阅读:
    centos7 安装nginx
    mysql
    MySQL的架构体系
    Redis实战之基础入门5种数据类型
    常用的接口限流算法
    大型分布式电商系统架构有哪些
    PHP内存管理机制
    MySQL索引查询原理
    Nginx的骚操作你知道多少?
    使用illuminate/html 提示: Call to undefined method IlluminateFoundationApplication::bindShared()
  • 原文地址:https://www.cnblogs.com/CathyXiaohe/p/4994498.html
Copyright © 2011-2022 走看看