zoukankan      html  css  js  c++  java
  • [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");
  • 相关阅读:
    ExtJS4学习笔记二--表单控件相关
    Js中replace()的用法
    浅析轮询(Polling)和推送(LongPolling)服务
    ExtJS4学习笔记五--面板使用
    ExtJS4学习笔记四--图片上传
    spring MVC
    ExtJS4学习笔记三--远程访问数据源示例
    Struts 2
    ExtJs4学习笔记一--基础知识
    URL编码规则
  • 原文地址:https://www.cnblogs.com/easonliu/p/4852129.html
Copyright © 2011-2022 走看看