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

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

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)     1b) d|o|g                   --> d1g              1    1  1     1---5----0----5--8c) i|nternationalizatio|n  --> i18n              1     1---5----0d) 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") -> falseisUnique("cart") -> trueisUnique("cane") -> falseisUnique("make") -> true 解题关键点有3个:

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
map = new HashMap
(); 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");

 

转载于:https://www.cnblogs.com/beiyeqingteng/p/5972407.html

你可能感兴趣的文章
Connect the Cities--hdoj
查看>>
poj--3061--Subsequence(贪心)
查看>>
灭霸—个人冲刺(7)
查看>>
当你输入一个网址的时候,实际会发生什么?
查看>>
高并发下的下单功能设计
查看>>
Jmeter之添加响应断言,bean shell post processor
查看>>
jQuery对表单、表格的操作及更多应用(下:其他应用)
查看>>
深入Java网络编程与NIO(一)
查看>>
Python 和 Java的对比
查看>>
深度学习笔记(一)
查看>>
[moka同学笔记]使用composer 安装yii2以及遇到的问题
查看>>
为rm命令增加回收站功能
查看>>
linux网站推荐
查看>>
浏览器 连不上网(2)
查看>>
【软件工程】结对四则运算
查看>>
Windows Phone开发之路(2) 开发环境的搭建
查看>>
MySQL数据库的基础操作及理解
查看>>
ThinkPHP_5【模型获取器】
查看>>
我对程序员身体健康的一点感悟《转》
查看>>
ASP.NET线程与异步
查看>>