java实现对英文字母去重_LeetCode算法题-Unique Morse Code Words(Java实现)
这是悦乐书的第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
String str = "";
for (char ch : words[i].toCharArray()) {
str += arr[ch-'a'];
}
set.add(str);
}
return set.size();
}
03 小结
算法专题目前已日更超过五个月,算法题文章187+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。
以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!
内容来源于网络如有侵权请私信删除
java实现对英文字母去重_LeetCode算法题-Unique Morse Code Words(Java实现)相关推荐
- LeetCode 804 Unique Morse Code Words--python,java解法
题目地址:Unique Morse Code Words - LeetCode Difficulty:easy Acceptance:74.1% International Morse Code de ...
- Java构造字符串算法题_LeetCode算法题-Repeated Substring Pattern(Java实现)
这是悦乐书的第236次更新,第249篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第103题(顺位题号是459).给定非空字符串检查是否可以通过获取它的子字符串并将子字符 ...
- 算法题库 java实现_LeetCode算法题-Most Common Word(Java实现)
这是悦乐书的第321次更新,第342篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第190题(顺位题号是819).给定一个段落和一组禁止词,返回不在禁止词列表中的最常用词 ...
- JAVA正则表达式验证英文字母、汉字和数字!!!
java用正则表达式判断字符串中是否仅包含英文字母.数字和汉字 public static boolean isLetterDigitOrChinese(String str) {String reg ...
- java 26个英文字母_java 如何判断是否是26个英文字母
场景 需要判断,首字母是否是英文字母. 有人说,那还不简单么,StringUtils.isAlpha() 就可以搞定. 笔者也是这么想的,结果却不是如此,代码: logger.info("字 ...
- java 文件名加英文字母_Java文件名及其他命名规则
http://bbs.csdn.net/topics/70157841 关于JAVA源文件命名的问题 Java文件命名: java程序是由类组成的: java应用程序必须有一个包含main方法的pu ...
- Java实现选最远距离的座位_LeetCode算法题-Maximize Distance to Closest Person(Java实现)...
这是悦乐书的第328次更新,第351篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第198题(顺位题号是849).在一排座位中,1表示一个人坐在该座位上,0表示座位是空的 ...
- java关于hashmap编程题_LeetCode算法题-Design HashMap(Java实现)
这是悦乐书的第299次更新,第318篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第167题(顺位题号是706).在不使用任何内置哈希表库的情况下设计HashMap.具体 ...
- LeetCode算法题-Jewels and Stones(Java实现)
这是悦乐书的第313次更新,第334篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第182题(顺位题号是771).字符串J代表珠宝,S代表你拥有的石头.S中的每个字符都是 ...
最新文章
- 【杂谈】菜鸟误入linux会有哪些惨痛的经历
- 【二分】递增(luogu 3902)
- ruby打印_Ruby程序打印数字的力量
- Visual Studio Code 前端调试不完全指南
- python rest api_Python调用REST API接口的几种方式汇总
- 使用工具连接linux中的mysql8.0
- Pytorch常用技巧记录
- 人脸识别全国产化电子元件推荐方案
- Subsonic使用
- 如何解析二维码,获取二维码里的参数供下一个接口使用
- 软件人员kpi制定模板_最常用5大绩效工具(附模板):OKR、KPI、MBO、平衡计分卡、360度...
- QQ空间技术架构之深刻揭密
- 小丽和小张 --- 作者:歪瓜裂枣
- 【实战模拟】使用Kali Linux进行域名解析——模拟测试
- 《Java程序设计》实验指导——项目3 类与对象
- Android文件读写操作(assets 文件、 raw文件、内部存储文件、外部存储文件)
- 7.查找——数据结构(严蔚敏 C语言版)
- Juc_并发编程目录
- LaTeX 插图总结
- 活灵活现用 Git --基础篇
热门文章
- centos7 通过脚本查询每个应用使用的内存
- jemter安装Transactions per Second和Response Times Over Time插件
- 运用HashMap和ArrayList打造一个简单的带文件的控制台学生管理系统(附上类及类方法的思维导图+控制台运行界面截图+源代码)
- tomcat和idea都占用了8080_IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式)...
- java 模板引擎_SpringBoot入门系列(四)如何整合Thymeleaf模板引擎
- oracle方差和协方差函数,[转载]方差var、协方差cov、协方差矩阵(浅谈)(三)_函数cov...
- 全志 添加TP休眠触摸唤醒 Patch
- 百度AI原生云实践: 基于容器云打造 AI 开发基础设施
- 阿卡迪亚大学的计算机科学,阿卡迪亚大学计算机科学
- webbrowser控件 有数据 但页面空白_如何在Excel中实现可以切换不同数据系列的滚珠图?...