• [LeetCode] Unique Word Abbreviation


    Unique Word Abbreviation

    An abbreviation of a word follows the form <first letter><number><last letter>. Below are some examples of word abbreviations:

    a) it                      --> it    (no abbreviation)
    
         1
    b) d|o|g                   --> d1g
    
                  1    1  1
         1---5----0----5--8
    c) i|nternationalizatio|n  --> i18n
    
                  1
         1---5----0
    d) l|ocalizatio|n          --> l10n
    

    Assume you have a dictionary and given a word, find whether its abbreviation is unique in the dictionary. A word's abbreviation is unique if no other word from the dictionary has the same abbreviation.

    Example: 

    Given dictionary = [ "deer", "door", "cake", "card" ]
    
    isUnique("dear") -> false
    isUnique("cart") -> true
    isUnique("cane") -> false
    isUnique("make") -> true
     1 class ValidWordAbbr {
     2 private:
     3     unordered_map<string, int> m_map;
     4     unordered_set<string> m_set;
     5 public:
     6     ValidWordAbbr(vector<string> &dictionary) {
     7         for (auto word : dictionary) {
     8             m_set.insert(word);
     9             if (word.length() == 2) ++m_map[word];
    10             else ++m_map[word.front() + to_string(word.length() - 2) + word.back()];
    11         }
    12     }
    13 
    14     bool isUnique(string word) {
    15         string key;
    16         if (word.length() == 2) key = word;
    17         else key = word.front() + to_string(word.length() - 2) + word.back();
    18         if (m_set.find(word) == m_set.end()) return m_map[key] < 1;
    19         else return m_map[key] < 2;
    20     }
    21 };
    22 
    23 
    24 // Your ValidWordAbbr object will be instantiated and called as such:
    25 // ValidWordAbbr vwa(dictionary);
    26 // vwa.isUnique("hello");
    27 // vwa.isUnique("anotherWord");
  • 相关阅读:
    指针细说
    C++编码规范101
    关于C标准
    Bjarne Stroustrup语录2
    Bjarne Stroustrup 语录1
    计算机网络基础识别
    ssh
    matplotlib画图
    数据分析之Numpy
    数据分析
  • 原文地址:https://www.cnblogs.com/easonliu/p/4852129.html
Copyright © 2020-2023  润新知