​力扣解法汇总2325. 解密消息

news2024/12/21 18:40:48

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你字符串 key 和 message ,分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下:

  1. 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。
  2. 将替换表与普通英文字母表对齐,形成对照表。
  3. 按照对照表 替换 message 中的每个字母。
  4. 空格 ' ' 保持不变。
  • 例如,key = "happy boy"(实际的加密密钥会包含字母表中每个字母 至少一次),据此,可以得到部分对照表('h' -> 'a''a' -> 'b''p' -> 'c''y' -> 'd''b' -> 'e''o' -> 'f')。

返回解密后的消息。

示例 1:

输入:key = "the quick brown fox jumps over the lazy dog", message = "vkbs bs t suepuv"
输出:"this is a secret"
解释:对照表如上图所示。
提取 "the quick brown fox jumps over the lazy dog" 中每个字母的首次出现可以得到替换表。

示例 2:

输入:key = "eljuxhpwnyrdgtqkviszcfmabo", message = "zwx hnfx lqantp mnoeius ycgk vcnjrdb"
输出:"the five boxing wizards jump quickly"
解释:对照表如上图所示。
提取 "eljuxhpwnyrdgtqkviszcfmabo" 中每个字母的首次出现可以得到替换表。

提示:

  • 26 <= key.length <= 2000
  • key 由小写英文字母及 ' ' 组成
  • key 包含英文字母表中每个字符('a' 到 'z'至少一次
  • 1 <= message.length <= 2000
  • message 由小写英文字母和 ' ' 组成

解题思路:

* 解题思路:
* 由key形成一个map映射,最后补一个空格的映射关系,然后逐个替换message中的字符即可。
 

代码:

public class Solution2325 {

    public String decodeMessage(String key, String message) {
        Map<Character, Character> map = new HashMap<>();
        int index = 0;
        for (char c : key.toCharArray()) {
            if (c == ' ') {
                continue;
            }
            if (map.get(c) != null) {
                continue;
            }
            map.put(c, (char) ('a' + index));
            index++;
        }
        map.put(' ', ' ');
        StringBuilder builder = new StringBuilder();
        for (char c : message.toCharArray()) {
            builder.append(map.get(c));
        }
        return builder.toString();
    }
}

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

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

相关文章

FastDeploy全场景高性能AI部署工具:加速打通AI模型产业落地的最后一公里

飞桨目前为开发者提供了涵盖多种领域的模型套件&#xff0c;开发者可以使用这些套件基于自身数据集快速完成深度学习模型的训练。但在实际产业部署环境下&#xff0c;开发者在部署模型到不同硬件和不同场景时面临以下三个痛点问题。 碎片化。在部署过程中&#xff0c;由于深度学…

投资中的不可能三角

投资中避不开这个不可能三角&#xff01; 而这“三个角”指的是高收益、低风险、高流动性&#xff0c;“不可能三角”则指的是“三角”难以同时满足。 因为这三角的关系是相互制衡的&#xff01; ①若要追求较低风险条件下的较高收益&#xff0c;需要以时间换取空间&#xff0…

认识现有的频谱监测方案

摘要随着频谱监测行业的不断发展&#xff0c;频谱仪已经不仅局限于频谱监测与获取&#xff0c;随着5G的逐渐普及&#xff0c;在垂直领域的各种应用中都有其价值。针对不同的应用场景与行业&#xff0c;现有的市场上主要存在三种频谱监测方案&#xff0c;我们将在本文中进行总结…

【AI-NLP】Transformer浅记

文章目录提出背景总体结构EncoderDecoder细节再探源码阅读主函数部分主模型定义参考资料提出背景 改进了RNN的训练慢的缺点&#xff0c;利用self-attention机制实现并行计算。并且Transformer可以增加到非常深的深度&#xff0c;充分发掘DNN模型的特性&#xff0c;提升模型准确…

2022 IoTDB Summit:中冶赛迪工业互联网平台与CISDigital-TimeS(基于IoTDB)在钢铁行业的实践...

12 月 3 日、4日&#xff0c;2022 Apache IoTDB 物联网生态大会在线上圆满落幕。大会上发布 Apache IoTDB 的分布式 1.0 版本&#xff0c;并分享 Apache IoTDB 实现的数据管理技术与物联网场景实践案例&#xff0c;深入探讨了 Apache IoTDB 与物联网企业如何共建活跃生态&#…

即时通讯开发之详解TCP/IP中的DNS 域名系统

前面已经提到了访问一台机器要靠 IP 地址和 MAC 地址,其中,MAC 地址可以通过 ARP 协议得到,所以这对用户是透明的,但是 IP 地址就不行,无论如何用户都需要用一个指定的 IP 来访问一台计算机,而 IP 地址又非常不好记,于是就出现了 DNS 系统。DNS 系统介绍DNS 的全称是 Domain Na…

MYSQL作业

MySQL 作业一、填空题 1、交叉连接查询返回的结果是被连接的两张数据表中所有数据行的_笛卡尔积___ 。2、左连接查询的结果包括 LEFT JOIN 子句中左表的_所有记录___&#xff0c;以及右表中满足连接条件的记录。3、内连接查询的语法中&#xff0c;ON 用于指定查询的__匹配条件_…

从0开始学python -16

Python3 列表-1 序列是 Python 中最基本的数据结构。 序列中的每个值都有对应的位置值&#xff0c;称之为索引&#xff0c;第一个索引是 0&#xff0c;第二个索引是 1&#xff0c;依此类推。 Python 有 6 个序列的内置类型&#xff0c;但最常见的是列表和元组。 列表都可以…

六西格玛,为质量人的职业发展保驾护航

常常会有做质量的人来问优思学院&#xff1a;在质量界混&#xff0c;应学什么好&#xff1f; 大部分时候&#xff0c;我都会提议他們&#xff1a;有空就要学六西格玛吧&#xff01; 他会回应&#xff1a;六西格玛感觉太难懂了&#xff0c;学了也没什么用啊&#xff0c;哪有那…

tensorflow框架之会话、张量、变量OP

2.3 会话、张量、变量OP 学习目标 目标 应用sess.run或者eval运行图程序并获取张量值应用feed_dict机制实现运行时填充数据应用placeholder实现创建占位符知道常见的TensorFlow创建张量知道常见的张量数学运算操作说明numpy的数组和张量相同性说明张量的两种形状改变特点应用…

前言技术之OAuth2.0

1、什么是OAuth2.0 OAuth2.0是目前使用非常广泛的授权机制&#xff0c;用于授权第三方应用获取用户的数据。 举例说明&#xff1a; 用户可以通过选择其他登录方式来使用gitee&#xff0c;这里就使用到了第三方认证。 OAuth 引入了一个授权层&#xff0c;用来分离两种不同的角…

记录--手把手教学,实现一个优雅的图片预览

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 在我们开发项目中&#xff0c;经常会遇到预览图片的需求。也就是点击图片&#xff0c;会全屏显示该图片。需求很简单&#xff0c;但是如何让实现更优雅就需要花点心思了。 最终效果图 基础版本 实现方…

从 Issue 看 El-Table 源码,给 Element+ 提 Pr 的背后竟如此坎坷

Element Plus大家应该都不陌生&#xff0c;用过 el-table 的伙伴更是多数&#xff0c;毕竟搞ToB业务 table 必不可少&#xff0c;但是真正翻看过源码的应该还是少数&#xff0c;有没有对其内部实现怀揣着一点点好奇呢&#xff1f;笔者就是因为怀揣着好奇&#xff0c;所以才走上…

什么是Intel Elkhart Lake?专用于物联网的处理器系列

随着世界向工业4.0过渡&#xff0c;边缘计算应用程序对实时推理、连接和数据遥测的更高性能和更低功耗处理的需求激增&#xff0c;并加强了加固。物联网和边缘计算的爆炸性增长造成了上一代处理器无法维持的性能瓶颈和限制。英特尔最新推出的Atom x6000 E系列、奔腾和赛扬N&…

IDEA无法使用Git Pull的问题

一、问题描述 我们开发项目时&#xff0c;经常会和第三方接口打交道&#xff0c;有些第三方项目为了安全起见&#xff0c;会把项目部署在"内网"环境&#xff0c;不对外暴露&#xff0c;通常会提供VPN代理才能访问到资源。 而在项目中我就因为这个而遇到了一个问题&am…

RK3568平台开发系列讲解(Linux系统篇)什么是Linux文件

🚀返回专栏总目录 文章目录 一、文件描述符二、常用文件 I/O 操作和函数2.1、open2.2、close2.3、read2.4、write沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Linux 把大部分系统资源当作文件呈现给用户,用户只需按照文件 I/O 的方式,就能完成数据的输入输出。…

Diffusion 扩散模型(DDPM)详解及torch复现

文章目录torch复现第1步&#xff1a;正向过程噪声调度器Step 2: 反向传播 U-NetStep 3: 损失函数采样Training我公众号文章目录综述&#xff1a;https://wangguisen.blog.csdn.net/article/details/127065903 保姆级讲解 Diffusion 扩散模型&#xff08;DDPM&#xff09; ht…

python面向对象:入门

python面向对象&#xff1a;入门 文章目录python面向对象&#xff1a;入门一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.创建类和对象2.构造方法3.类中的实例方法一、实验目的 掌握类的基本使用 二、实验原理 面向过程&#xff1a;根据业务逻辑从上到下写…

Win10 BCD文件损坏怎么修复?

在Windows 10操作系统中&#xff0c;BCD代表引导配置数据&#xff08;Boot Configuration Data&#xff09;&#xff0c;Windows运行时BCD将告诉Windows引导加载程序在哪里查找引导信息&#xff0c; 因此&#xff0c;它对成功地加载和运行操作系统是非常重要的。哪些情况下会导…

二叉树的前序遍历

题目144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09;本章我们来探讨运用二叉树中所学的知识解决本题。对二叉树仍有疑问的小伙伴可以点击下方链接哦。参考文献&#xff1a;(1条消息) 二叉树&#xff08;三&#xff09;_染柒_GRQ的博客-CSDN博客原理首先我们来回…