力扣804.唯一摩尔斯密码词(java语言 散列表法)

news2024/10/7 6:47:59

题目描述:

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

‘a’ 对应 “.-” ,
‘b’ 对应 “-…” ,
‘c’ 对应 “-.-.” ,以此类推。
为了方便,所有 26 个英文字母的摩尔斯密码表如下:
在这里插入图片描述
给你一个字符串数组 words ,每个单词可以写成每个字母对应摩尔斯密码的组合。

例如,“cab” 可以写成 “-.-…–…” ,(即 “-.-.” + “.-” + “-…” 字符串的结合)。我们将这样一个连接过程称作 单词翻译 。
对 words 中所有单词进行单词翻译,返回不同 单词翻译 的数量。
在这里插入图片描述

解题思路:

我们先将明确问题将问题分解成如下待求解部分:

1.如何翻译一个单词的摩尔斯码;
2.如何对翻译后的个数进行统计;

针对问题1:

由于题目已经将26个字母的摩尔斯电码值以数组的形式给出来了,所以我们想到利用字母与小写字母a的ASCII码值之差转换为对应26个字母顺序电码索引的小技巧将其映射关系转化为一个散列表

针对问题2:
我们最先想到的就是自己定义一个‘计数器’变量,然后“翻译”一个统计一个,但是我们通过示例1就可以看出,其实单词是有重复的,我们要统计的是不重复的单词个数如果我们像那样操作就避免不了又要进行一个去重操作!但是我们提到去重我们是可以联想到java语言Set集合中的HashSet集合的特性,帮助我们完成对重复单词的统计。操作如下:

定义一个HashSet集合,每当“翻译”完一个单词时就将其添加到HashSet集合中(若添加不成功即说明有重复。这样我们就变向的完成了去重操作),最后返回集合的长度。

代码:

class Solution {
	//HashSet
	//Time Complexity: O(N^2)
	//Space Complexity: O(M) M为不重复单词个数
	public int uniqueMorseRepresentations(String[] words) {
	String[] morse = {".-","-...","-.-.","-..",".","..-.",
        "--.","....","..",".---","-.-",".-..","--","-.","---",
        ".--.","--.-",".-.","...","-","..-","...-",".--","-..-",
        "-.--","--.."};
        Set<String>  count = new HashSet<>();
        for (String word : words) {
        	StringBuilder code = new StringBulider();
        	for (int i = 0; i < word.length(); i++) {
        		char letter = word.charAt(i);
        		code.append(morse[letter - 'a']);
        	}
        	count.add(code.toString());
        }
        return count.size();
	}
}

总结:

通过本题目我们不难发现,如果我们要对一些存在重复元素进行统计时,我们可以尝试着利用HashSet去变向实现该操作(Java 语言)!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/101978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全球石油行业资源储量丰富 但分布不均 供需量逐渐恢复增长

1、全球石油资源储量情况 &#xff08;1&#xff09;全球石油资源丰富&#xff0c;但分布不均匀 根据观研报告网发布的《2022年中国石油行业分析报告-行业全景评估与投资规划分析》显示&#xff0c;全球石油资源总量丰富&#xff0c;勘探开发潜力较大。根据数据显示&#xff0…

旺季大促白热化,如何做好谷歌广告投放

眼下已经到了旺季大促的白热化阶段了&#xff0c;那么在这个关键的时期&#xff0c;跨境卖家应该如何利用好广告投放呢&#xff1f; 想必大家都知道&#xff0c;谷歌是跨境卖家们最最常用的广告投放渠道&#xff0c;今天&#xff0c;华sir重点向大家介绍一下谷歌的智能购物广告…

[附源码]Python计算机毕业设计Django校园二手交易平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

B5G毫米波通信无线接入网络的架构设计

【摘 要】在B5G和6G时代,基于高频毫米波通信的各类先进技术将成为极大提升网络容量和促进新业务部署的关键使能因素。结合过去蜂窝无线接入网络架构的演进特点,设计出一种新型的无线接入网络架构,使得它能充分地适配高频毫米波通信的各种特点,并能实现对网络各层资源的更高…

(附源码)springboot厨到家服务平台 毕业设计 063133

springboot厨到家服务系统 摘 要 在社会快速发展的影响下&#xff0c;餐饮迅速发展&#xff0c;大大增加了餐饮服务信息管理的数量、多样性、质量等等的要求&#xff0c;使餐饮的管理和运营比过去十年更加困难。依照这一现实为基础&#xff0c;设计一个快捷而又方便的厨到家服…

Java项目:SSM问卷调查系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 这是一个基于SpringMVCSpringMyBatis的SSM问卷调查系统。 管理端权限 管理员信息CURD 制作调查问卷 发布调查问卷 统计调查结果 统计报表展示 用…

第二章JavaWeb基础知识学习路线

文章目录什么是Java WebJava Web基础的技术栈关于我们的客户端与服务端&#xff08;BS&#xff09;我们客户端的形式**PC端网页****移动端**服务端应用程序关于请求&#xff08;request&#xff09;和响应(response)类比生活中的请求和响应服务器中的请求和响应项目的逻辑构成架…

【Linux】重定向与通配符

目录一.输入输出重定向输出重定向概念小试牛刀输入重定向一切皆文件二.命令行的通配符星号&#xff08;*&#xff09;问号&#xff08;?&#xff09;中括号[]一.输入输出重定向 输入重定向&#xff1a;把文件导入到命令中。 输出重定向&#xff1a;指把原本要输出到屏幕的数据…

步进电机堵转、丢步、失步

1、测试背景&#xff1a;同样电压下&#xff0c;步进电机转速越快&#xff0c;速度到一定之后&#xff0c;出现不转&#xff0c;或者加大驱动器的运行电流&#xff0c;电机也出现不转。 2、步进电机转速与力矩的关系&#xff1a;转速越快&#xff0c;力矩越小 3、测试&#xf…

NR HARQ(三) semi-static HARQ-ACK codebook

微信同步更新&#xff0c;欢迎关注同名modem协议笔记UE在一个PUCCH&#xff08;或PUSCH&#xff09;上发送HARQ-ACK信息时&#xff0c;信息bit很可能是多个bits位数&#xff0c;这个多bits位数的HARQ-ACK信息&#xff0c;也称为HARQ-ACK codebook码本UE物理层在以下几种情况下&…

使用 CNN 检测一个人是否戴了口罩

在本文中&#xff0c;我们将使用 CNN &#xff08;卷积神经网络&#xff09;和机器学习分类器创建一个检测一个人是否戴着口罩的分类器。它将检测一个人是否戴着口罩。 我们将从头开始学习&#xff0c;我将对每一步进行解释。我需要你对机器学习和数据科学有基本的了解。我已经…

Bootstrap5 表单

在本章中&#xff0c;我们将学习如何使用 Bootstrap 创建表单。Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不同样式的表单。 表单元素 <input>, <textarea>, 和 <select> elements 在使用 .form-control 类的情况下&#xff0c;宽度都是设置为…

【HAL库】STM32CubeMX开发----delay延时实验----NOP空指令

STM32CubeMX 下载和安装 详细教程 【HAL库】STM32CubeMX开发----STM32F103/F207/F407----目录 前言 HAL库有自带的 ms级 延时函数&#xff1a; HAL_Delay(); 缺点1&#xff1a; 无法实现 us级延时 缺点2&#xff1a; 此延时函数是由SysTick滴答定时器中断产生的&#xff0…

【性能篇】28 # Canvas、SVG与WebGL在性能上的优势与劣势

说明 【跟月影学可视化】学习笔记。 可视化渲染的性能问题有哪些&#xff1f; 渲染效率问题&#xff1a;指的是图形系统在绘图部分所花费的时间计算问题&#xff1a;指绘图之外的其他处理所花费的时间&#xff0c;包括图形数据的计算、正常的程序逻辑处理等等。 在浏览器上…

Leetcode 1760. 袋子里最少数目的球

给你一个整数数组 nums &#xff0c;其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。你可以进行如下操作至多 maxOperations 次&#xff1a;选择任意一个袋子&#xff0c;并将袋子里的球分到 2 个新的袋子中&#xff0c;每个袋子里都有 正整数 个球…

深圳电巢携手东华理工大学“电巢相伴 研职引航” 线上讲座圆满结束

前 言 2022年12月13日下午2时&#xff0c;电巢十日谈——“电巢相伴 研职引航”在电巢app直播间开讲&#xff0c;本次活动由电巢科技与东华理工大学共同举办&#xff0c;为机械与电子工程学院的大一到大四的学生带来了不少启发。 「电巢十日谈」这一系列活动正是受到薄伽丘《…

如何实现冷库冷链远程监控

本解决方案是通过智能物联网技术&#xff0c;实现对冷库温湿度的远程监控管理。 根据冷库内的温湿度数据可以及时掌握冷库内的环境状况&#xff0c;并及时采取相应的措施。 该系统通过实时监测与显示不同冷库的温湿度&#xff0c;将温度数据上传到服务器&#xff0c;并可根据实…

Fully Convolutional Adaptation Networks for Semantic Segmentation

参考 论文解析之《Fully Convolutional Adaptation Networks for Semantic Segmentation》 - 云社区 - 腾讯云 论文网址&#xff1a;Fully Convolutional Adaptation Networks for Semantic Segmentation 摘要 深度神经网络的最新进展令人信服地证明了在大数据集上学习视觉模…

基于MediatR管道的公共业务校验

基于MediatR的管道模式&#xff0c;我们可以在处理业务之前&#xff0c;进行统一验证&#xff0c;记录日志等。 所有命令&#xff08;Command&#xff09;再被处理(Handle)之前&#xff0c;都要经过IRequestPreProcessor处理&#xff0c;我们注入自己的拦截器&#xff0c;执行…

chrome拓展插件开发中使用chrome.storage本地存储

一、描述 在扩展程序中本地存储数据可以通过 chrome.storage API 实现&#xff0c;和 web 中的 localstorage 在某些方面是有区别的&#xff0c;chrome.storage 已经做了优化。 与 localStorage 的区别&#xff1a; 用户数据可以与 chrome 自动同步&#xff08;通过 storage…