Unique Word Abbreviation
2016-07-13 10:13
369 查看
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") ->
思路: 用hashmap统计brave,生成<K,V> --> <String, HashSet<String>>,然后判断word的hashset里面是否只有一个跟word本身相等的string,如果是return true,otherwise return false。
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
思路: 用hashmap统计brave,生成<K,V> --> <String, HashSet<String>>,然后判断word的hashset里面是否只有一个跟word本身相等的string,如果是return true,otherwise return false。
public class ValidWordAbbr { HashMap<String, HashSet<String>> hashmap = new HashMap<String, HashSet<String>>(); public ValidWordAbbr(String[] dictionary) { for(int i=0; i<dictionary.length; i++){ String key = generateKey(dictionary[i]); if(hashmap.containsKey(key)){ hashmap.get(key).add(dictionary[i]); } else { HashSet<String> hashset = new HashSet<String>(); hashset.add(dictionary[i]); hashmap.put(key, hashset); } } } public String generateKey(String str){ if(str.length() == 0) return str; StringBuilder sb = new StringBuilder(); sb.append(str.charAt(0)); sb.append(str.length()-2); sb.append(str.charAt(str.length()-1)); return sb.toString(); } public boolean isUnique(String word) { String key = generateKey(word); if(hashmap.containsKey(key)){ HashSet<String> hashset = hashmap.get(key); return hashset.contains(word) && hashset.size() == 1; } return true; } } // Your ValidWordAbbr object will be instantiated and called as such: // ValidWordAbbr vwa = new ValidWordAbbr(dictionary); // vwa.isUnique("Word"); // vwa.isUnique("anotherWord");
相关文章推荐
- Easy-ui dialog弹框拖动超出body后无法关闭
- UITableView没数据时用户提示如何做?
- 今天更新Android studio 2.1.2,Instant Run requires 'Tools | Android | Enable ADB integration' to be enabl
- 第12章:图形用户界面GUI
- Unique Paths
- request、response 中文乱码问题
- UITableView(表示图)
- java Integer.valueOf()方法
- UIGraphicsBeginImageContext系列知识
- 开源视频会议BigBlueButton 0.81二次开发API
- POJ 1904 King's Quest 强连通分量+二分匹配
- EasyUI datagrid : 启用行号、固定列及多级表头后,头部行号位置单元格错位的问题
- iOS App开发中UIViewController类的使用教程
- SequenceInputStream
- WebUI 常用
- 不自定义cell,最原始的创建UITableViewCell
- 正确使用String,StringBuffer,StringBuilder
- android 事件处理机制之requestDisallowInterceptTouchEvent
- C#时间转换UInt64<--->DateTime
- Vue.js