C练题笔记之:Leetcode-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] 由小写英文字母组成
来源:力扣(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. 唯一摩尔斯密码词相关推荐
- java 摩尔斯电码_Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
804. 唯一摩尔斯密码词 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", " ...
- 字符串 leetcode 804 唯一摩尔斯密码词
题目 :唯一摩尔斯密码词 内容: 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", &q ...
- LeetCode 804. 唯一摩尔斯密码词(哈希+set)
文章目录 1. 题目 2. 解题 1. 题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-&quo ...
- Leetcode 804. 唯一摩尔斯密码词
题目描述 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" ...
- Javascript(JS) leetcode 804. 唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b' 对应 "-..." , 'c ...
- 【算法leetcode每日一练】804. 唯一摩尔斯密码词
文章目录 804. 唯一摩尔斯密码词: 样例 1: 样例 2: 提示: 分析 题解 java c c++ python go rust typescript 原题传送门:https://leetcod ...
- leetcode面试题 804. 唯一摩尔斯密码词
leetcode面试题 804. 唯一摩尔斯密码词 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b ...
- 804.唯一摩尔斯密码词
题目 804.唯一摩尔斯密码词 题目大意 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b' 对应 ...
- 804. 唯一摩尔斯密码词
804. 唯一摩尔斯密码词 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", " ...
最新文章
- 为了让AI像人一样思考,DeepMind这次又干了什么?
- sql server 中获取前一天日期_图解SQL面试题:如何比较日期数据?
- 职称计算机必考和选考,2017职称计算机考试选择题「附答案」
- QT的QHashIterator类的使用
- Arduino笔记-定时器中断(MsTimer2库使用)
- 软件架构-接口隔离原则
- 看见的力量 – (II) 影响地图
- SQL“多字段模糊匹配关键字查询”
- Word转pdf文件使用技巧:怎么安装虚拟pdf打印机
- 前端低代码工具amis使用文档
- 无轴螺旋输送机螺旋叶片的更换方法
- 华为HarmonyOS系统搭载了POKERTIME129263和AOMAHA的汉印智能打印新升级
- 三星手机出现com.sec.android.app.sa,如何去除Galaxy S20/S20 /Ultra/S10/系统内置的Bixby三星Pay等软件Ap......
- 最小二乘拟合多项式(利用构造正交多项式的方法)C++
- 移动端布局-px转vw、vh
- 加拿大曼尼托巴大学计算机专业几年,2020年加拿大曼尼托巴大学毕业时间是几月...
- 凯撒密码加密解密C语言详细代码
- 0-1规划的MATLAB求解
- php网站乱码,完美解决乱码、一键解决PHP的乱码、php网站乱码矫正神器、PHP乱码修复器
- 后缀自动机 (WJMZBMR讲稿的整理和注释)