288. Unique Word Abbreviation

Posted 鱼与海洋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了288. 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 otherword 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

 

注意 

dic = [”hello“] word = “hello”  isunique

public class ValidWordAbbr {
    HashMap<String, String> set;
    public ValidWordAbbr(String[] dictionary) {
        set = new HashMap<String, String>();
        for(int i = 0 ; i < dictionary.length; i++){
            String temp = dictionary[i];
            if(set.containsKey(getKey(temp)) && !set.get(getKey(temp)).equals(temp))
                set.put(getKey(temp) , "");
            else
                set.put(getKey(temp) , temp);
            
        }
    }
    
    public String getKey(String s){
        if(s.length() <= 2) return s;
        else{
           return s.charAt(0)+Integer.toString(s.length()-2)+s.charAt(s.length()-1);
        }
    }

    public boolean isUnique(String word) {
        if(set.containsKey(getKey(word))){
            return set.get(getKey(word)).equals(word);
        }
        else
            return true;
    }
}


// Your ValidWordAbbr object will be instantiated and called as such:
// ValidWordAbbr vwa = new ValidWordAbbr(dictionary);
// vwa.isUnique("Word");
// vwa.isUnique("anotherWord");

 

以上是关于288. Unique Word Abbreviation的主要内容,如果未能解决你的问题,请参考以下文章

java 288. Unique Word Abbreviation.java

java 288. Unique Word Abbreviation.java

java 288. Unique Word Abbreviation.java

java 288. Unique Word Abbreviation.java

288. Unique Word Abbreviation

288. Unique Word Abbreviation