Leetcode Unique Word Abbreviation
2016-10-18 10:41
423 查看
An abbreviation of a word follows the form <first letter><number><last letter>. Below are some examples of word abbreviations:
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:
isUnique("cart") ->
isUnique("cane") ->
isUnique("make") ->
解题关键点有3个:[/code]
1. 找出word abbreviation 的规律,<first letter><number><last letter>,number = string.length() - 2
2. 当发现dictionary 里有相同的abbreviation, key 对应的value 变为""
3. The abbreviation of "hello", i.e., h3o already exists in the dictionary.
Input: ["hello"],isUnique("hello") Output: [false] Expected: [true]
If the given word itself is in the dictionary, and it has the unique abbreviation, then we should return true.
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") -> [code]false
isUnique("cart") ->
true
isUnique("cane") ->
false
isUnique("make") ->
true
解题关键点有3个:[/code]
1. 找出word abbreviation 的规律,<first letter><number><last letter>,number = string.length() - 2
2. 当发现dictionary 里有相同的abbreviation, key 对应的value 变为""
3. The abbreviation of "hello", i.e., h3o already exists in the dictionary.
Input: ["hello"],isUnique("hello") Output: [false] Expected: [true]
If the given word itself is in the dictionary, and it has the unique abbreviation, then we should return true.
1 public class ValidWordAbbr { 2 private Map<String, String> map = new HashMap<String, String>(); 3 4 public ValidWordAbbr(String[] dictionary) { 5 for(int i = 0; i < dictionary.length; i++){ 6 String key = abbreviate(dictionary[i]); 7 if(!map.containsKey(key)){ 8 map.put(key, dictionary[i]); 9 }else{ 10 map.put(key, ""); 11 } 12 } 13 } 14 15 private String abbreviate(String str){ 16 return str.charAt(0) + Integer.toString(str.length() - 2)+ str.charAt(str.length()-1); 17 } 18 19 public boolean isUnique(String word) { 20 String x = abbreviate(word); 21 if(map.containsKey(x)){ 22 if(map.get(x).equals(word)){ 23 return true; 24 }else { 25 return false; 26 } 27 } 28 return true; 29 } 30 } 31 32 // Your ValidWordAbbr object will be instantiated and called as such: 33 // ValidWordAbbr vwa = new ValidWordAbbr(dictionary); 34 // vwa.isUnique("Word"); 35 // vwa.isUnique("anotherWord");
相关文章推荐
- *LeetCode-Unique Word Abbreviation
- [LeetCode] Unique Word Abbreviation
- [LeetCode] Unique Word Abbreviation 独特的单词缩写
- Leetcode: Minimum Unique Word Abbreviation
- leetcode 288: Unique Word Abbreviation
- LeetCode Unique Word Abbreviation
- [LeetCode] Minimum Unique Word Abbreviation 最短的独一无二的单词缩写
- LeetCode 256. Unique Word Abbreviation
- Leetcode Unique Word Abbreviation
- Leetcode: Unique Word Abbreviation
- LeetCode-Unique Word Abbreviation
- LeetCode 411: Minimum Unique Word Abbreviation
- [Leetcode] 411. Minimum Unique Word Abbreviation 解题报告
- Leetcode Unique Word Abbreviation
- [Leetcode 411]Minimum Unique Word Abbreviation
- [LeetCode288]Unique Word Abbreviation
- [leetcode 288] Unique Word Abbreviation
- [LeetCode] Unique Word Abbreviation
- Leetcode: Valid Word Abbreviation
- LeetCode Valid Word Abbreviation