加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[Swift]LeetCode288. 唯一单词缩写 $ Unique Word Abbreviation

发布时间:2020-12-14 04:55:18 所属栏目:百科 来源:网络整理
导读:An abbreviation of a word follows the form first letternumberlast 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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读