leetcode摩尔斯密码

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

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

[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
给定一个单词列表,每个单词可以写成每个字母对应摩尔斯密码的组合。例如,"cab" 可以写成 "-.-..--...",(即 "-.-." + "-..." + ".-"字符串的结合)。我们将这样一个连接过程称作单词翻译。

返回我们可以获得所有词不同单词翻译的数量。

例如:
输入: words = ["gin", "zen", "gig", "msg"]
输出: 2
解释:
各单词翻译如下:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."

共有 2 种不同翻译, "--...-." 和 "--...--.".
解答:
class Solution:
def uniqueMorseRepresentations(self, words: List[str]) -> int:
m = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
abc = [chr(i) for i in range(97,123)]
z = dict(zip(abc, m))
res=[]
# print(z[‘a‘])
for i in range(len(words)):
temp = words[i]
x = ""
for j in range(len(temp)):
x += z[str(temp[j])]
if x not in res:
res.append(x)
return(len(res))

原文地址:https://www.cnblogs.com/qwksjy/p/11252739.html

时间: 2024-09-30 06:26:22

leetcode摩尔斯密码的相关文章

804. 唯一摩尔斯密码词

国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等. 为了方便,所有26个英文字母对应摩尔斯密码表如下: [".-","-...","-.-.","-..",".&

leecode [唯一摩尔斯密码词]

今天看到leecode [唯一摩尔斯密码词]比较有趣,但发现网页上一处错误,如下: 根据原文定义"cab"对应的摩斯密码应该是"-.-..--...",已经联系leecode人员改正. 具体步骤简单分解为:1.将26个字母及对应的摩斯密码做成字典表2.以单词为单位去查字典表,将字母对应摩斯密码首尾连接,返回单词对应的莫斯字符串3.自定义一个空的字典morse_words = {},对给定的单词数组遍历调用第2步,但遍历中需要判断单词对应的莫斯字符串是否在morse_

力扣题目汇总(转换成小写字母,唯一摩尔斯密码,有序数组平方)

力扣题目汇总(转换成小写字母,唯一摩尔斯密码,有序数组平方) 转换成小写字母 1.题目描述 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" 输出: "hello" 示例 2: 输入: "here" 输出: "here" 示例 3: 输入: "LOVELY" 输出: "lovel

leecode练习--804、唯一摩尔斯密码词

leecode练习--804.唯一摩尔斯密码词 题目要求: 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等 为了方便,所有26个英文字母对应摩尔斯密码表如下: [".-","-...","-.-.&qu

LeetCode 804 唯一摩尔斯密码词

package com.lt.datastructure.Set; import java.util.TreeSet; /* * 一个摩斯码,对应一个字母.返回我们可以获得所有词不同单词翻译的数量. * 遍历字符串,word.charAt(i)-'a'获得当前字符所对应的索引,添加到StringBuilder容器. * 用集合去重 * 返回集合size */ public class LeetCode804 { public static int uniqueMorseRepresentatio

摩尔斯电码(Morse Code)Csharp实现

摩尔斯电码,在早期的"生产斗争"生活中,扮演了很重要的角色,作为一种信息编码标准,摩尔斯电码拥有其他编码方案无法超越的长久生命.摩尔斯电码在海事通讯中被作为国际标准一直使用到1999年.不过随着科技的发展,最终还是倒在了历史的车轮下(PS:等等,为何这么熟悉??观众:好一片根正苗红的*文啊,啊啊啊啊),1997年,当法国海军停止使用摩尔斯电码时,发送的最后一条消息是:“所有人注意,这是我们在永远沉寂之前最后的一声呐喊!”. 任何关于Morse code可拓展的咨询,请移步维基百科:摩尔

摩尔斯电码 对照 英文 字母

".-", a "-...",b "-.-.",c "-..",d ".",e "..-.",f "--.",g "....",h "..",i ".---",j "-.-",k ".-..",l "--",m "-.",n &q

集合和映射(Set And Map)

目录 集合 Set 基于二分搜索树实现集合 基于链表实现集合 集合的时间复杂度分析 映射 Map 基于链表实现映射 基于二分搜索树实现映射 映射的时间复杂度分析 leetcode上关于集合和映射的问题 集合 Set ??Set是一种新的数据结构,类似于数组,但是不能添加重复的元素,基于Set集合的这个特性,我们可以使用Set集合进行客户统计和词汇统计等,集合中常用的方法如下: public interface Set<E> { void add(E e); //添加元素e,不能添加重复元素 b

HDU 1523 Decoding Morse Sequences

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1523 此题大意为 给你一串摩尔斯密码  再给你一个字典(下面单词本) 用下面的单词组合成给你的摩尔斯密码, 问最多有多少种不同的组合方式. 题解分析: 1.设字符串的长度为len ,  判断dp[i]处是否可达, 若可达则遍历整个单词表. 2.要先把dp[0]设为1,遍历单词表,若此单词可以在 i 处匹配则 dp[i+L] += dp[i], L(这个单词转成摩尔斯密码后的字符长度); 3.最后输出