★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-kvxllhyn-kw.html
➤若是连接不是山青咏芝的博客园地址,则多是爬取做者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持做者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html
An abbreviation of a word follows the form <first letter><number><last letter>. Below are some examples of word abbreviations:git
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.github
Example: 微信
Given dictionary = [ "deer", "door", "cake", "card" ] isUnique("dear") -> isUnique("cart") -> isUnique("cane") -> isUnique("make") -> falsetruefalsetrue
单词的缩写词遵循形式<first letter><number><last letter>。如下是单词缩写的一些示例:测试
a) it --> it (无缩写) 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
假设你有一本字典并给了一个单词,找出它的缩写在字典中是否惟一。若是字典中没有其余单词具备相同的缩写,则单词的缩写是惟一的。spa
例子:code
给定 dictionary = [ "deer", "door", "cake", "card" ] isUnique("dear") -> isUnique("cart") -> isUnique("cane") -> isUnique("make") -> falsetruefalsetrue
Solution:
1 class Solution { 2 var m:[String:Set<String>] = [String:Set<String>]() 3 func ValidWordAbbr(_ dictionary:inout [String]) { 4 for a in dictionary 5 { 6 let arr:[Character] = Array(a) 7 let k:String = String(arr[0]) + String(a.count - 2) + String(arr.last!) 8 m[k,default:Set<String>()].insert(a) 9 } 10 } 11 12 func isUnique(_ word:String) -> Bool 13 { 14 let arr:[Character] = Array(word) 15 let k:String = String(arr[0]) + String(word.count - 2) + String(arr.last!) 16 let num:Int = m[k,default:Set<String>()].contains(word) ? 1 : 0 17 return num == m[k,default:Set<String>()].count 18 } 19 }
点击:Playground测试orm
1 var sol = Solution() 2 var arr:[String] = [ "deer", "door", "cake", "card" ] 3 sol.ValidWordAbbr(&arr) 4 print(sol.isUnique("dear")) 5 //Print false 6 print(sol.isUnique("cart")) 7 //Print true 8 print(sol.isUnique("cane")) 9 //Print false 10 print(sol.isUnique("make")) 11 //Print true