在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 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") -> 单词的缩写词遵循形式<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", "door", "cake", "card" ] isUnique("dear") -> 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
|
请发表评论