【Java|golang】2325. 解密消息

news2024/11/15 12:31:35

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

使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。
将替换表与普通英文字母表对齐,形成对照表。
按照对照表 替换 message 中的每个字母。
空格 ’ ’ 保持不变。
例如,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 由小写英文字母和 ’ ’ 组成

public String decodeMessage(String key, String message) {
        Map<Character, Character> map = new HashMap<>();
        map.put(' ',' ');
        StringBuilder res = new StringBuilder(message.length());
        char index='a';
        for (int i = 0; i < key.length(); i++) {
            if (!map.containsKey(key.charAt(i))){
                map.put(key.charAt(i),index++);
            }
        }
        for (int i = 0; i < message.length(); i++) {
            res.append(map.get(message.charAt(i)));
        }
        return res.toString();
    }

在这里插入图片描述

func decodeMessage(key string, message string) string {
	mapX:=make(map[int32]int32,27)
	mapX[' ']=' '
	res :=""
	index:='a'
	for _, v := range key {
		if _,ok:=mapX[v];!ok {
			mapX[v]=index
			index++
		}
	}
	for _, v := range message {
		res+=string(mapX[v])
	}
	return res
}

在这里插入图片描述

func decodeMessage(key string, message string) string {
	mapX:=make(map[int32]int32,27)
	mapX[' ']=' '
	res:=make([]int32, len(message))
	index:='a'
	for _, v := range key {
		if _,ok:=mapX[v];!ok {
			mapX[v]=index
			index++
		}
	}
	for k, v := range message {
		res[k]=mapX[v]
	}
	return string(res)
}

在这里插入图片描述

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

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

相关文章

【23 Java后端】小米

一、JavaSE JaveEE —— Java 数据结构 —— 集合类 1. HashMap 底层&#xff0c;链表与红黑树转换原因 JDK 1.7 HashMap 底层使用 “数组链表” 实现&#xff0c;数组为主体&#xff0c;链表为了解决 哈希冲突JDK 1.8 HashMap 底层使用 “数组链表红黑树” 实现 当链表长度…

bootstrap是什么,bootstrap如何使用

bootstrap是什么 Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架&#xff0c;用于开发响应式布局、移动设备优先的 WEB 项目。 使用bootstrap 下载地址

Power BI散点图

散点图可以让一大堆令人困惑的散乱数据变得通俗易懂&#xff0c;并能让你从这些庞杂数据中发现一些表面上看不到的关系&#xff0c;数据量越大&#xff0c;从散点图的分布中越能看出来一些规律。 什么是散点图 在直角坐标系中&#xff0c;用两组数据构成多个坐标点&#xff0…

【无标题】质量管理10题

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

使用 WSL2 进行 Go 开发

文章目录1. 安装 WSL22. 配置 Ubuntu 环境配置 root 用户密码设置默认 root3. 配置 Go 环境下载 SDK配置环境变量配置 GOPROXY4. 使用 GoLand 进行开发由于 kitex 目前对 Windows 下自动生成代码适配不完善&#xff0c;因此使用 WSL2 进行 Go 的开发&#xff0c;在配置 WSL2 环…

IEEE参考文献格式生成 之 谢谢你Zotero!

谢谢你Zotero&#xff01;心酸的开始方法1&#xff08;有文献pdf&#xff09;方法2&#xff08;无文献pdf&#xff09;方法3&#xff08;自己写&#xff09;怎么找到bib文件呢&#xff1f;期刊论文会议论文书籍&#xff08;专著&#xff09;心酸的开始 一开始在看到论文模板的…

20230202英语学习

How James Webb Space Telescope Changed Astronomy in Its First Year 你最爱的这些绝美图像&#xff0c;正在改变宇宙学 The most pressing aim of JWST is one of the most ambitious projects in the recent history of astronomy: to look back at some of the first ga…

力扣刷题记录——1078. Bigram 分词、1207. 独一无二的出现次数 、1089. 复写零

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《力扣刷题记录——1078. Bigram 分词、1207. 独一无二的出…

python面向对象:三大特性

python面向对象三大特性&#xff1a;继承、封装、多态 文章目录python面向对象三大特性&#xff1a;继承、封装、多态一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.封装2.继承3.多态总结一、实验目的 掌握类的封装、多态、继承 二、实验原理 面向对象的三…

Python爬虫3-数据解析方法:正则表达式介绍及案例

目录标题1、正则表达式介绍re库的主要功能函数Re库的match对象Re库的贪婪匹配和最小匹配2、正则表达式案例案例1&#xff1a;所有图片爬取案例2&#xff1a;分页爬取案例3&#xff1a;淘宝商品信息案例4&#xff1a;股票数据1、正则表达式介绍 正则表达式re:简洁表达一组字符串…

PCIe设备的配置过程

PCIe设备的配置过程 文章目录PCIe设备的配置过程参考资料&#xff1a;一、 PCIe系统硬件结构二、 PCIe系统软件层次三、事务层TLP格式3.1 Posted和Non-Posted3.2 TLP通用格式3.3 TLP头部四. 配置与RC直连的设备4.1 怎么访问直连的设备4.2 配置EendPoint五、 配置示例5.1 必备知…

PPT绘图笔记2:PPT导出图片结合ps处理图片

ppt导出的图片有透明背景怎么办&#xff1f;我使用的是组合图。 一开始以为是我的分辨率不行&#xff0c;按照官网的说明在注册表上进行修改1。 然后我在查资料的时候在B站看到一个方法可以用ps填充白色背景&#xff0c;并且修改分辨率.首先导入到ps调整的方法2&#xff0c;记…

AXI 总线协议学习笔记(3)

引言 上篇文章主要介绍了 AMBA以及AXI协议的基本内容&#xff0c;本文接续前文&#xff0c;继续介绍AXI协议的 原子访问、传输行为和事务顺序等。 AXI 总线协议学习笔记&#xff08;2&#xff09;https://blog.csdn.net/qq_43045275/article/details/128824643 原子访问 原子…

SpringBoot系列 整合MyBatisPlus入门

官网&#xff1a; https://mybatis.plus/ https://mp.baomidou.com/ 由于MyBatisPlus并未被收录到idea的系统内置配置&#xff0c;无法直接选择加入 pom <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-sta…

【string类的简单模拟实现】

目录 1 类中成员变量的声明 2 迭代器 3 一些常用接口 4 六大默认函数 4.1 构造 4.2 拷贝构造 4.3 赋值运算符重载 4.4 析构 5 开空间&&增删查改 6 其他运算符重载 1 类中成员变量的声明 通过上一篇文章对string类的简单使用相信大家对于string类中成员变量已…

Android so库开发——Swig工具使用(五)

SWIG 是一种软件开发工具&#xff0c;它将 C 和 C 编写的程序与各种高级编程语言连接起来。这里我们用它来将 C/C 转换成 Java。 一、Swig安装 1、下载 官网&#xff1a;SWIG官网下载 源码链接 GitHub&#xff1a;https://github.com/swig/swig.git 这两个地址可能会出现无…

关于Java中的BigDecimal

文章目录为什么用BigDecimalBigDecimal构造方法通过静态方法创建BigDecimal对象BigDecimal常用API关于除法运算的roundingMode将BigDecimal转换为基本类型代码展示小结其他文章为什么用BigDecimal 使用float、double及其对应的包装类时&#xff0c;运算精度可能不满足需求 flo…

scrollTo() 无效问题处理

需求&#xff1a; 实现访问当前页面直接滚动到最底部 方案&#xff1a;window对象的scrollTo()方法 API介绍&#xff1a; 参数接收一个点&#xff08;文档坐标&#xff09;&#xff0c;让该点位于左上角。 可选参数为behavior(设置滚动的效果&#xff09; 错误案例&#xff1a;…

【My Electronic Notes系列——数制与编码】

目录 序言&#xff1a; &#x1f3c6;&#x1f3c6;人生在世&#xff0c;成功并非易事&#xff0c;他需要破茧而出的决心&#xff0c;他需要永不放弃的信念&#xff0c;他需要水滴石穿的坚持&#xff0c;他需要自强不息的勇气&#xff0c;他需要无畏无惧的凛然。要想成功&…

剑指 Offer II 005单词长度的最大乘积

给定一个字符串数组 words&#xff0c;请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时&#xff0c;它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串&#xff0c;返回 0。 示例 1: 输入: words ["abcw"…