博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode算法题-Unique Morse Code Words(Java实现)
阅读量:6595 次
发布时间:2019-06-24

本文共 1513 字,大约阅读时间需要 5 分钟。

这是悦乐书的第318次更新,第339篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是804)。国际莫尔斯电码定义了一种标准编码,其中每个字母映射到一系列点和短划线,如下所示:“a”映射到“.-”,“b”映射到“-...”,“c”映射到“-.-.“, 等等。

为方便起见,下面给出了英文字母26个字母的完整表格:

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

现在,给定一个单词数组,每个单词可以写成每个字母的摩尔斯代码的串联。例如,“cba”可以写成“-.-..--...”,(这是串联"-.-." + "-..." + ".-")。我们称之为串联,即一个词的转换。返回我们所有单词中不同变换的数量。例如:
输入: words = ["gin", "zen", "gig", "msg"]

输出: 2

说明: 每个单词的转换是:

"gin" -> "--...-."

"zen" -> "--...-."

"gig" -> "--...--."

"msg" -> "--...--."

有两种不同的转换, "--...-." and "--...--."。

注意

  • 数组的长度最多为100。

  • 每个单词的长度范围为[1,12]。

  • 单词只包含小写字母。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 解题

题目的意思很简单,根据给定的单词数组,将数组中的每个单词转换成由莫尔斯电码组成的字符串,计算其中有几个字符串(重复出现的不计数)。

第一步,初始化莫尔斯电码字符串数组,创建一个HashSet,用来存储转换后的新字符串。

第二步,遍历单词数组,将每个单词中的组成字符转成莫尔斯电码并且拼接成一个新的字符串,存入HashSet中。

第三步,以HashSet的size作为结果返回,因为其元素不会重复,其大小就是去重后剩下的字符串数量。

public int uniqueMorseRepresentations(String[] words) {    String[] arr = {".-","-...","-.-.","-..",".","..-.",        "--.","....","..",".---","-.-",".-..","--",        "-.","---",".--.","--.-",".-.","...","-",        "..-","...-",".--","-..-","-.--","--.."};    HashSet
set = new HashSet
(); for (int i=0; i

03 小结

算法专题目前已日更超过五个月,算法题文章187+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

转载于:https://www.cnblogs.com/xiaochuan94/p/10780950.html

你可能感兴趣的文章
用例图
查看>>
“#51CTO学院四周年#互相交流,共同提高!
查看>>
同样是做内容创业,你为什么没有别人赚得多?
查看>>
检查Linux系统日志error和mysql错误日志的脚本
查看>>
高效制冷与自然冷却并重
查看>>
SQL Server 2008 全文搜索的一些知识
查看>>
GUN as 使用
查看>>
一周最新示例代码回顾 (4/16–4/22)
查看>>
TCPDUMP快速入门手册
查看>>
【转】Ubuntu13.04配置:Vim+Syntastic+Vundle+YouCompleteMe
查看>>
Nginx学习之二-配置项解析及编程实现
查看>>
[Effective Java]第十一章 序列化
查看>>
[算法导论]红黑树实现(插入和删除) @ Python
查看>>
iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比
查看>>
使用ReaderWriterLock类实现多用户读/单用户写同步
查看>>
中国式危机公关9加1策略(第十四章 国外危机应对案例參考)
查看>>
CKEditor上传插件
查看>>
Java 缩放图片工具类,创建缩略图、伸缩图片比例
查看>>
Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)
查看>>
利用scp传输文件小结
查看>>