• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[Swift]LeetCode288.唯一单词缩写$UniqueWordAbbreviation

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新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") -> false
isUnique("cart") -> true
isUnique("cane") -> false
isUnique("make") -> true

单词的缩写词遵循形式<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") -> false
isUnique("cart") -> true
isUnique("cane") -> false
isUnique("make") -> true

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

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[Swift]LeetCode907.子数组的最小值之和|SumofSubarrayMinimums发布时间:2022-07-13
下一篇:
swift中UIActionSheet的使用发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap