题目 :唯一摩尔斯密码词

内容:

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

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

[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-","…-",".–","-…-","-.–","–…"]

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

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

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

共有 2 种不同翻译, “–…-.” 和 “–…--.”.

注意:

单词列表words 的长度不会超过 100。
每个单词 words[i]的长度范围为 [1, 12]。
每个单词 words[i]只包含小写字母。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/unique-morse-code-words

解答

int uniqueMorseRepresentations(char ** words, int wordsSize){int b,c;// 把字母对应情况用二元组来表示char a[26][5]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};// hashmap用来存储不重复的单词所对应的摩尔斯密码char hashmap[100][60]={0};//不初始化,会导致程序bug,改了好久才发现这里出问题,好习惯一定要养成int count=0;//二维字符用来存储每个单词对应的摩尔斯密码 12x4=48char z[100][48] = {0};for(int i=0;i<wordsSize;i++){for(int j=0;j<strlen(words[i]);j++){//b用来表示这个单词中某个字母和a间的差,是a的话,差是0,b的话差是1,用b的值来对应每个单词摩尔斯码b=words[i][j]-'a';//把每个摩尔斯码拼接到对应的第i个单词那个strcat(z[i],a[b]);}//循环遍历hashmap中的字符串去比较,有相等则break,跳出的时候c一定小于count,没有相同的时候c>=count;for(c=0;c<count;c++){if(strcmp(hashmap[c],z[i])==0){break;}}//不同字符串的时候往hashmap中添加if(c>=count){strcat(hashmap[c],z[i]);count++;}}return count;
}

注意:

每次声明变量的时候记得初始化,这是个好习惯.还有用字符串的strcmp strcat strcpy时候打正确,切记不要看错.

总结:

构建hashmap来实现检验重复.发现python 的集合 字典都有防止重复的作用,这些都是封装好的,c语言则需要通过代码去实现防止重复.所以我认为c语言对练习算法非常的好,可以去自己实现一些底层的东西.

字符串 leetcode 804 唯一摩尔斯密码词相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. oracle字段求和_oracle大纲
  2. vlan后 出现 outlook 正在试图从服务器检索数据
  3. OpenCV背景扣除Background Subtraction
  4. 【剑指offer】二叉树的深度_solution2
  5. 使用GDAL下载并转换SRTM的DEM数据(二)
  6. vue中的v-if和v-show的区别
  7. Win10中小娜无法搜索本地应用
  8. Linux Bash严重漏洞修复紧急通告
  9. Shell 编程入门到精通
  10. CSS+HTML如何写一个类似于淘宝的简单导航栏?
  11. Android应用的persistent属性
  12. kinect v2 相机标定
  13. 闲鱼双11端侧实践总结
  14. 人工智能前沿技术应用趋势与发展展望
  15. 微信小程序登录-PHP后端
  16. 幼儿园手工之自制时钟_幼儿园手工之自制时钟,提高孩子良好的时间观念
  17. JAVA家政服务管理系统毕业设计 开题报告
  18. 一些关于【前端】学习资源(网站、视频、文章)收藏的网址
  19. 01: tornado基础篇
  20. 三丰三坐标编程基本步骤_蔡司三坐标测量机操作技巧,有蔡司三坐标的工厂都清除清楚吗?...

热门文章

  1. linux查询mac地址分屏,Tmux: linux下的分屏神器
  2. picview是哪里的图片_PicViewer(图片浏览器)
  3. 公众号开发之-node响应微信token验证
  4. 京东T9走出最新的里程碑,《新算法宝典,java自学入门书籍推荐
  5. 集合深入(List)
  6. shiro框架的使用流程
  7. 一年级关于计算机的手抄报内容是什么,一年级交通安全手抄报内容大全
  8. [导入]2004韩剧《最后的舞请与我一起》全20集[韩语中字]
  9. linux wish和bash的关系,追踪:Wish邮到底与Wish有多大关系?
  10. ios10怎么设置电池颜色_教你如何查看iPhone电池寿命?iOS10耗电也不怕!