题目:

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

'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] 由小写英文字母组成

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/unique-morse-code-words
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

结果:

解题思路:

很暴力的解决方法:

1、将所有单词转换成福尔摩斯密码

2、去重,通过将完全互不相同的福尔摩斯序号存储到notSame数组中,从这个数组的成员个数就可以知道总共有多少个互不相同的。

代码:

void *GetHolmesStr(char *words, char *hoWords)
{char holmes[26][5] =  {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};int len = strlen(words);for (int i = 0; i < len; i++) {strcat(hoWords, holmes[words[i] - 'a']);}return;
}int uniqueMorseRepresentations(char ** words, int wordsSize){char **hoWords = (char **)malloc(sizeof(char *) * wordsSize);for (int i = 0; i < wordsSize; i++) {hoWords[i] = (char *)malloc(sizeof(char ) * 50);hoWords[i][0] = '\0';GetHolmesStr(words[i], hoWords[i]);}int notSame[100] = {0};notSame[0] = 1;int index = 1;for (int i = 1; i < wordsSize; i++) {notSame[index++] = i;for (int j = 0; j < index - 1; j++) {if (strcmp(hoWords[i], hoWords[notSame[j]]) == 0) {index--;break;}}}return index;
}

C练题笔记之:Leetcode-804. 唯一摩尔斯密码词相关推荐

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

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

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

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

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

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

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

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

  5. Javascript(JS) leetcode 804. 唯一摩尔斯密码词

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

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

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

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

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

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

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

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

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

最新文章

  1. 为了让AI像人一样思考,DeepMind这次又干了什么?
  2. sql server 中获取前一天日期_图解SQL面试题:如何比较日期数据?
  3. 职称计算机必考和选考,2017职称计算机考试选择题「附答案」
  4. QT的QHashIterator类的使用
  5. Arduino笔记-定时器中断(MsTimer2库使用)
  6. 软件架构-接口隔离原则
  7. 看见的力量 – (II) 影响地图
  8. SQL“多字段模糊匹配关键字查询”
  9. Word转pdf文件使用技巧:怎么安装虚拟pdf打印机
  10. 前端低代码工具amis使用文档
  11. 无轴螺旋输送机螺旋叶片的更换方法
  12. 华为HarmonyOS系统搭载了POKERTIME129263和AOMAHA的汉印智能打印新升级
  13. 三星手机出现com.sec.android.app.sa,如何去除Galaxy S20/S20 /Ultra/S10/系统内置的Bixby三星Pay等软件Ap......
  14. 最小二乘拟合多项式(利用构造正交多项式的方法)C++
  15. 移动端布局-px转vw、vh
  16. 加拿大曼尼托巴大学计算机专业几年,2020年加拿大曼尼托巴大学毕业时间是几月...
  17. 凯撒密码加密解密C语言详细代码
  18. 0-1规划的MATLAB求解
  19. php网站乱码,完美解决乱码、一键解决PHP的乱码、php网站乱码矫正神器、PHP乱码修复器
  20. 后缀自动机 (WJMZBMR讲稿的整理和注释)

热门文章

  1. DeeplabV3+训练数据集流程(学习记录)
  2. 马来西亚纳闽岛(Labuan)
  3. 服务器运维基本操作记录
  4. 金融扫盲-资本市场从天使轮、ABCD轮、风投、到上市圈钱、借壳上市。
  5. ng-options用法详解
  6. Quartz 在misfire模式[错失、补偿执行] 策略
  7. jav 中 this和super
  8. Ubuntu桌面版添加开机启动谷歌Chrome浏览器并绝对全屏
  9. php系统接入七牛云直播服务,在旧有 PHP 系统上集成七牛云 PHP
  10. [PTA]实验3-1 求一元二次方程的根