博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
288. Unique Word Abbreviation
阅读量:4467 次
发布时间:2019-06-08

本文共 1700 字,大约阅读时间需要 5 分钟。

这是一题非常坑的简单题。

https://discuss.leetcode.com/topic/37254/let-me-explain-the-question-with-better-examples/2

1) [“dog”]; isUnique(“dig”);

//False, because “dig” has the same abbreviation with “dog" and “dog” is already in the dictionary. It’s not unique.

2) [“dog”, “dog"]; isUnique(“dog”);

//True, because “dog” is the only word that has “d1g” abbreviation.

3) [“dog”, “dig”]; isUnique(“dog”);

//False, because if we have more than one word match to the same abbreviation, this abbreviation will never be unique.

这样就能明白了

 

 思路:

  建一个Hashmap,key是缩写,value是对应的词,如果对词典进行建立的时候就已经发现重复了,就把value设置成“”

  对新来的词,如果这个词的缩写在map并且这个词不是那个字典里产生这个词的原词,那么就返回false。

1 public class ValidWordAbbr { 2     Map
dic; 3 4 public ValidWordAbbr(String[] dictionary) { 5 dic = new HashMap
(); 6 for(int i = 0; i < dictionary.length; i++) { 7 String abb = generateAbb(dictionary[i]); 8 if(dic.containsKey(abb) && !dic.get(abb).equals(dictionary[i])) { 9 dic.put(abb, "");10 } else {11 dic.put(abb, dictionary[i]);12 }13 }14 }15 16 private String generateAbb(String s) {17 int len = s.length();18 if(len < 3) {19 return s;20 }21 StringBuilder sb = new StringBuilder();22 sb.append(s.charAt(0));23 sb.append(len - 2);24 sb.append(s.charAt(len - 1));25 return sb.toString();26 }27 28 public boolean isUnique(String word) {29 String abb = generateAbb(word);30 return !dic.containsKey(abb) || dic.get(abb).equals(word);31 }32 }

 

转载于:https://www.cnblogs.com/warmland/p/5962591.html

你可能感兴趣的文章
结合实际业务场景聊一聊MVP模式的应用
查看>>
WinPE启动U盘的制作方法与软件下载(通用PE工具箱/老毛桃/大白菜WinPE)(转载)...
查看>>
行为型设计模式之5--中介者模式
查看>>
Android DevArt6:Android中IPC的六种方式
查看>>
PMP学习感想
查看>>
Zookeeper全解析——Paxos作为灵魂
查看>>
集合-强大的集合工具类:java.util.Collections中未包含的集合工具
查看>>
CSS清除浮动
查看>>
数据库基础-数据库常用命令总结
查看>>
java8 按对象属性值排序
查看>>
【转帖】国产x86处理器KX-6000发布
查看>>
04-js的运算符
查看>>
第三天 while循环 及其用法
查看>>
Delphi 10 seattle 去掉自带的代码连接线
查看>>
构建高并发高可用的电商平台架构实践(转)
查看>>
Geometry Imager Viewport Filter
查看>>
九度oj 题目1025:最大报销额
查看>>
数字及字符串
查看>>
【转载】OmniGraffle (二)基础绘图和模具
查看>>
一些提高开发效率的 Category
查看>>