LeetCode算法题-Unique Morse Code Words(Java实现)

字符编码(一)--编码界的始祖Morse Code Morse Code 1836年,美国人Samuel F. B. Morse、Joseph Henry和Alfred Vail发明了电报系统,而这种系统只能传送和接受脉冲,所以需要一种编码来携载自然语言,Morse提出了最初的编码方法,只传送数字,根据接受到的数字查阅手册来确定传输的内容,但Vail扩展了编码方法,把字母和特殊字符包含进去,而且根据当地一家报纸中英文字母出现的频率来决定每个字 阅读详情

这是悦乐书的第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<String> set = new HashSet<String>();
    for (int i=0; i<words.length; i++) {
        String str = "";
        for (char ch : words[i].toCharArray()) {
           str += arr[ch-'a'];
        }
        set.add(str);
    }
    return set.size();
}

03 小结

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

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

Morse码转换 简单morse码转换器,含源码,写着玩的,初学者学习交流 立即下载

相关推荐

机器人抓取(一)—— ROS MoveIt! 程序控制真实UR5机器人运动(python)

接上篇:ubuntu18.04 ros-melodic 安装 ur_robot_driver,驱动真实的 ur5 机器人 上文在 ubuntu 系统中配置了ur 机器人ros功能包 universal_robot 和驱动 Universal_Robots_ROS_Driver,并实现了用 moveit_rviz 拖动机器人运动。本文旨在学习如何使用 moveit python 用户接口moveit_commander,实现真实的ur5 机器人轨迹规划与控制。 1. ur5 机器人控制 参考:MoveIt »

zxxRobot的博客 1万+

基础算法题四:输入一个字符串数组words,请计算不包含相同字符的两个字符串words[i]和words[j]的长度乘积的最大值。

福利:这是我的个人IT资源网站,所有资源都免费,注册登录后就可以看到密码,需要什么大家尽情选取! 题目:输入一个字符串数组words,请计算不包含相同字符的两个字符串words[i]和words[j]的长度乘积的最大值。如果所有字符串都包含至少一个相同字符,那么返回0。假设字符串中只包含英文小写字母。例如,输入的字符串数组words为[“abcw”,“foo”,“bar”,“fxyz”,“abcdef”],数组中的字符串"bar"与"foo"没有相同的字符,它们长度的乘积为9。"abcw"与"fxyz"也没

ITMANLZY的技术空间 1647

5.44GHz超高精度!STM32G474的HRTIM时钟配置避坑指南

本文深入解析STM32G474内置高分辨率定时器的时钟配置要点,帮助工程师避开常见陷阱。文章详细阐述了从系统时钟到5.44GHz等效时基的路径,重点分析了预分频器乘法器、周期计算溢出、影子寄存器同步等关键配置,并结合实测波形对比,确保HRTIM在电机控制、数字电源等精密应用中发挥极限性能。

book8的博客 525

leetcode 算法题758 (简单199) 字符串中的加粗单词

leetcode 算法题758 (简单199) 字符串中的加粗单词 题目介绍 给定一个关键词集合 words 和一个字符串 S, 将所有 S 中出现的关键词加粗。所有在标签 <b> 和 </b> 中的字母都会加粗。 返回的字符串需要使用尽可能少的标签,当然标签应形成有效的组合。 例如,给定 words = ["ab", ...

FYuu95100的博客 1260

Abaqus仿真进阶:如何准确计算气动软体机器人的抓取力(Blocking Force分析)

本文详细介绍了使用Abaqus进行气动软体机器人抓取力(Blocking Force)分析的进阶技巧。从材料模型验证、刚性目标物选择到接触对建立和充气加载优化,提供了一套完整的有限元仿真解决方案,帮助工程师准确预测软体执行器的抓取性能。

weixin_42528902的博客 403

手把手教你用Verilog实现AT24C64的I2C读写(附完整仿真流程)

本文详细介绍了如何使用Verilog HDL设计AT24C64 EEPROM的I2C控制器,并配合ModelSim完成完整的仿真验证流程。内容涵盖I2C协议解析、Verilog状态机设计、AT24C64读写操作实现,以及仿真波形分析和调试技巧,为FPGA开发者提供了一套完整的EEPROM控制解决方案。

3c4x5z6v7b的博客 847

TMS320C6654引脚功能深度解析与硬件设计避坑指南

在嵌入式系统与DSP硬件开发中,引脚配置是构建稳定可靠系统的基石。其核心原理在于通过精确的电气定义和功能复用,将芯片内部复杂逻辑与外部物理世界连接起来。正确的引脚设计技术价值巨大,它直接决定了系统的启动可靠性、信号完整性和外设兼容性,是避免后期调试中“玄学”问题的关键。在实际应用场景中,无论是工业控制、通信基站还是高性能计算,都需要工程师深入理解Boot模式配置、DDR3接口时序以及电源完整性管理等核心概念。本文聚焦于**TMS320C6654**这款高性能多核DSP,针对其复杂的**引脚复用**机制和高速

weixin_33924220的博客 463

铁路场景雷达点云目标识别与追踪系统

本文介绍了一种基于毫米波雷达的铁路货运车站安全监控系统。该系统采用分布式架构,通过多个毫米波雷达节点采集点云数据,经过坐标转换、多雷达融合等处理后,利用机器学习算法实现列车、行人等目标的实时识别与追踪。系统包含数据采集层、处理层、目标识别层、追踪层、预警决策层和可视化层,能够克服传统视频监控受环境影响大的缺点,实现全天候可靠监测。文中详细展示了雷达数据解析和点云预处理的代码实现,包括坐标转换、数据格式解析和体素网格滤波等关键技术。该系统可有效预警铁路场景下的碰撞风险,提升货运车站的安全管理水平。

huanghm88的专栏 125

java实现对英文字母去重_LeetCode算法题-Unique Morse Code Words(Java实现)

这是悦乐书的第318次更新,第339篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是804)。国际莫尔斯电码定义了一种标准编码,其中每个字母映射到一系列点和短划线,如下所示:“a”映射到“.-”,“b”映射到“-...”,“c”映射到“-.-.“, 等等。为方便起见,下面给出了英文字母26个字母的完整表格:[".-","-...","-.-.","-....

weixin_35531779的博客 437

把 MCP Server 直接装进 SAP ABAP:用 Unlimited Display Tools 打通 Agentic SDK 与 SAP ECC / S/4HANA 的最后一公里

摘要:AI与SAP集成的MCP解决方案 企业在AI集成中面临工具链复杂、数据对接繁琐的挑战。Model Context Protocol (MCP)通过标准化工具与数据暴露方式,将集成复杂度从N×M降至N+M。在SAP生态中,MCP Server for SAP直接部署于ABAP层,利用DDIC/CDS视图对接各类Agent SDK,避免中间件风险。 MCP核心包含三类对象: Tools:带元数据的可执行动作 Resources:结构化上下文数据 Prompts:可参数化提示模板 ABAP层实现MCP Se

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 690

CKA-CN考试之路----2

部分知道就可以了,考试不用输入,后面不再复述.这里我们需要将两端内容凭借成1个yaml。执行题目中给的的命令进行测试。

Q先生 244

Leetcode 804.Unique Morse Code Words (Java)

问题描述:International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: "a"maps to ".-", "b" maps to "-...", "c" maps to "-.-.", and so on

lovrain的博客 777

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LeetCode 804 Unique Morse Code Words

LeetCode 804 Unique Morse Code Words 传送门 题目分析 International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: "a" maps to ".-", "...

博客 999

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Leetcode 804 Unique Morse Code Words

class Solution { public int uniqueMorseRepresentations(String[] words) { int len=words.length; int ans=0; Set&lt;String&gt; s=new HashSet&lt;&gt;(); for(int i=0;i&...

Polanwind 117

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【leetcode】804. Unique Morse Code Words

class Solution { public int uniqueMorseRepresentations(String[] words) { String[] morse = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.",...

Art1st_D的博客 226

LeetCode 804 Unique Morse Code Words--python,java解法

LeetCode 804 Unique Morse Code Words Difficulty:easy Acceptance:74.1% International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: “a” ...

个人博客 578

【LeetCode】804. Unique Morse Code Words

题目:简述题目:    题目中给出了一个摩斯密码的对应数组,也就是每个字母分别对应的摩斯密码,然后给出一组单词,求最终不同的摩斯密码的个数(因为有些字母的摩斯密码的组合可能会相同)思路:    遍历,然后生成每个单词的莫斯密码,存储,求个数    我一开始用了hashmap,还统计了每个摩斯密码出现的个数,但是其实并么有这个必要,只需要知道一共有多少个不同的就行了,所以后来改用了hashset,可...

Mint_r的博客 314

【Leetcode】804. Unique Morse Code Words

题目地址: https://leetcode.com/problems/unique-morse-code-words/ 给定一个字符串数组,代表每个字母对应的摩斯密码。再给定若干单词,求这些单词对应的摩斯密码的个数(需要去重)。 import java.util.HashSet; import java.util.Set; public class Solution { public int uniqueMorseRepresentations(String[] words) {

数学、算法爱好者的博客 158

leetcode 804. Unique Morse Code Words

     解题思路:HashSet不能放进重复元素。public int uniqueMorseRepresentations(String[] words) { String[] morseCode= {".-","-...","-.-.","-..",".","..-.","--.","....","..",&

yyatt的博客 515

LeetCode-Java-804. Unique Morse Code Words

题目 International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: "a" maps to ".-", "b" maps to "-...", "c" maps to "-.-.", and so

咸鱼塘 402

Leetcode C++ 804. Unique Morse Code Words 【Set】

International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: “a” maps to “.-”, “b” maps to “-…”, “c” maps to “-.-.”, and so on. For conv...

memcpy0的博客 563

leetcode804-Unique Morse Code Words

例如,“cab” 可以写成 “-.-…” ,(即 “-.-.” + “.-” + “-…这道题目也是常规题目,摩尔数组和字母的对应关系可以直接用一个string数组标示,遍历words依次组建每个字符串的摩尔密码,然后放入set中即可。输入: words = [“gin”, “zen”, “gig”, “msg”]对 words 中所有单词进行单词翻译,返回不同 单词翻译 的数量。共有 2 种不同翻译, “–…‘c’ 对应 “-.-.” ,以此类推。‘a’ 对应 “.-” ,‘b’ 对应 “-…

我的程序人生 411

LeetCode From Easy To Hard No5[Easy]: Unique Morse Code Words 独一无二的摩斯密码

International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows:"a"maps to".-","b"maps to"-...","c"maps to"-.-.", and so on. For c...

我属码的博客 221

每日一道Leetcode算法—— Unique Morse Code Words——2019.01.17

  中文: 国际莫尔斯电码定义了一种标准编码,其中每个字母映射到一系列点和短划线,如下所示:“a”映射到“.-”,“b”映射到“-...”,“c”映射到“-。-。“, 等等。 为方便起见,下面给出了英文字母26个字母的完整表格: [".-","-...","-.-.","-..",".","..-.","--.","....",".

third_的博客 289
上一篇: LeetCode算法题-Rotate String(Java实现)
下一篇: LeetCode算法题-Number of Lines To Write String(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值