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) 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") -> 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
假设你有一本字典并给了一个单词,找出它的缩写在字典中是否唯一。如果字典中没有其他单词具有相同的缩写,则单词的缩写是唯一的。
例子:
给定 dictionary = [ "deer","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测试
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。