题目

804.唯一摩尔斯密码词

题目大意

国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:

  • 'a' 对应 ".-"
  • 'b' 对应 "-..."
  • 'c' 对应 "-.-." ,以此类推。

为了方便,所有 26 个英文字母的摩尔斯密码表如下:

[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]

给你一个字符串数组 words ,每个单词可以写成每个字母对应摩尔斯密码的组合。

  • 例如,"cab" 可以写成 "-.-..--..." ,(即 "-.-." + ".-" + "-..." 字符串的结合)。我们将这样一个连接过程称作 单词翻译

words 中所有单词进行单词翻译,返回不同 单词翻译 的数量。

样例

示例 1:

输入: words = ["gin", "zen", "gig", "msg"]
输出: 2
解释:
各单词翻译如下:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."共有 2 种不同翻译, "--...-." 和 "--...--.".

示例 2:

输入:words = ["a"]
输出:1

数据规模

提示:

  • 1 <= words.length <= 100
  • 1 <= words[i].length <= 12
  • words[i] 由小写英文字母组成

思路

题目很简单,就是262626个字母每个字母对应了一个摩斯密码stringstringstring,然后把它们拼凑起来,看有多少种不同的摩斯密码stringstringstring,很显然用哈希表会很方便,如果C++就可以直接使用unordered_set<string>mp之类的。不过这类偏字符串形式的题目用python,那真是太舒服了,直接将莫斯表复制进去,然后用set来存结果,最后输出len(set)即可。

代码

class Solution:def uniqueMorseRepresentations(self, words: List[str]) -> int:l=[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]ans=set([])for word in words:s=""for i in range(len(word)):s+=l[ord(word[i])-ord('a')]ans.add(s)return len(ans)

简化之后的代码:

class Solution:def uniqueMorseRepresentations(self, words: List[str]) -> int:l=[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]return len(set("".join(l[ord(x)-ord('a')] for x in word)for word in words))

804.唯一摩尔斯密码词相关推荐

  1. java 摩尔斯电码_Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)

    804. 唯一摩尔斯密码词 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", " ...

  2. leetcode面试题 804. 唯一摩尔斯密码词

    leetcode面试题 804. 唯一摩尔斯密码词 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b ...

  3. 【算法leetcode每日一练】804. 唯一摩尔斯密码词

    文章目录 804. 唯一摩尔斯密码词: 样例 1: 样例 2: 提示: 分析 题解 java c c++ python go rust typescript 原题传送门:https://leetcod ...

  4. 804. 唯一摩尔斯密码词

    804. 唯一摩尔斯密码词 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", " ...

  5. 804. 唯一摩尔斯密码词(对照转换)

    804. 唯一摩尔斯密码词 给你一个字符串数组 words ,每个单词可以写成每个字母对应摩尔斯密码的组合. 例如,"cab" 可以写成 "-.--–-" ,( ...

  6. 字符串 leetcode 804 唯一摩尔斯密码词

    题目 :唯一摩尔斯密码词 内容: 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", &q ...

  7. LeetCode 804. 唯一摩尔斯密码词(哈希+set)

    文章目录 1. 题目 2. 解题 1. 题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-&quo ...

  8. Leetcode 804. 唯一摩尔斯密码词

    题目描述 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" ...

  9. 力扣 804. 唯一摩尔斯密码词

    题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b' 对应 "--" , ' ...

最新文章

  1. strcut结构体和char型数组的相互转化
  2. quercus mysql_14.5 Quercus 原理及展望
  3. C语言之字符串探究(四):读越界、写越界
  4. 第五十三天 how can I 坚持
  5. 【Linux】ubuntu锐捷客户端连接四川大学校园网
  6. .Net代码检查工具 Gendarme
  7. Java图片上查找图片算法
  8. 电商公司ERP管理软件与旺店通、第三方仓库以及云仓的贯通解决方案
  9. GSM网络结构及主要接口标注(附中英翻译)
  10. 人机融合的科幻与现实
  11. selenium常用模块(传送门)
  12. win10磁盘分区图文教程
  13. 超级应用/_超级应用
  14. java中去字符串中的(全角)空格
  15. 【黑帽大牛】浅谈SEO快排系统对网站排名优化真的有帮助吗?【精品】
  16. 程序思路分享 计算机毕业设计Python+Spark+Hadoop+Flink微博舆情预警系统 微博舆情可视化 舆情大数据 微博大数据 微博爬虫 大数据毕业设计 大数据毕设
  17. flutter-isolate详解
  18. 全国所有城市当天天气数据爬虫
  19. 数值优化-信赖域方法
  20. ddos是什么意思?服务器怎么防御ddos?

热门文章

  1. 小心看上去平平无奇的陷阱:如何防范高级渣?
  2. 斐波那契的N种实现方式
  3. SecureCRT和SecureFX用法
  4. Pandas基础:文件读取与写入、Series和Dataframe、常用基本函数、排序
  5. 【增加苏宁】2020双十一淘宝领喵币+京东全名营业+支付宝+苏宁の自动化任务
  6. 车贷需要注意的问题,车贷风控流程这几点你必须知道
  7. 第二章 局域网技术和组网规范
  8. 2022年北京国际塑料橡胶及包装工业展览会
  9. LeetCode刷题100道,让你滚瓜烂熟拿下SQL
  10. 莫斯科计划在 17 万个监控摄像头中引入人脸识别;广东农行“刷脸取款”实现 1600 多个网点全覆盖...