入门力扣自学笔记234 C++ (题目编号:2325)

news2024/11/19 2:41:59

2325. 解密消息

题目:

给你字符串 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 由小写英文字母和 ' ' 组成


来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/decode-the-message
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


思路:

首先,清理Key中重复的字母和空格
其次,循环message和清理后的key对照,获取清理后的key的下标 +'a'即解密后的字符。

最后,返回结果即可。


代码:

class Solution {
public:
    string decodeMessage(string key, string message) {
        string res;
        string key2;
        for(int j = 0;j<key.size();j++)
        {
            bool b = true;
            for(int i=0;i<key2.size();i++)
            {
                if(key[j] == key2[i])
                {
                    b = false;
                    break;
                }                   
            }
            if(key[j] != ' ' && b)
                key2 += key[j];
        }
        for (int i = 0; i < message.size(); i++)
	    {
            if(message[i] == ' ')
            {
                  res += ' ';
                  continue;
            }
            for(int j = 0;j<key2.size();j++)
            {
                if(message[i] == key2[j])
                {
                    char value = 'a' + j;
                    res += value;         
                    break;
                }

            }
	    }
        return res;
    }
};

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

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

相关文章

ESP32设备驱动-PCF8591数据采集驱动

PCF8591数据采集驱动 1、PCF8591介绍 PCF8591 是一款单片集成、独立电源、低功耗、8 位 CMOS 数据采集设备。 PCF8591 具有四个模拟输入、一个模拟输出和一个串行 I2C 总线接口。 PCF8591 的三个地址引脚 A0、A1 和 A2 可用于硬件地址编程 8 PCF8591 器件允许访问相同的 I2C…

dig命令命令常见用法

dig命令命令常见用法域名结构dig命令命令常见用法安装dig查看本机使用的dns地址使用dot或doh查询域名解析查询A记录查询dns所有记录值any从ip地址反查询域名dig -x检查txt记录是否生效查看DNS是否开启AXFR协议全量区传输功能dig诊断DNS污染只显示域名的解析ip递归解析dig trace…

全球13台 DNS 根服务器,居然没有一台属于中国!

域名系统是最重要的互联网服务之一&#xff0c;没有它&#xff0c;我们将无法访问在线内容&#xff0c;甚至无法发送电子邮件。每当我们尝试连接到其他网站或在线服务时&#xff0c;根 DNS 服务器都会帮助我们的计算机找到并到达我们想要的地址。 DNS 根服务器是所有 DNS 的组…

MySQL-JDBC反序列化分析

0x01 前言 听师傅们说这条链子用的比较广泛&#xff0c;所以最近学一学&#xff0c;本来是想配合着 tabby 或是 codeql 一起看的&#xff0c;但是 tabby 的环境搭建一直有问题&#xff0c;耽误了很久时间&#xff0c;所以就直接看了 0x02 JDBC 的基础 本来不太想写这点基础的…

LaTeX使用enumitem包切换enumerate标签样式

一、直接使用enumerate 源码&#xff1a; \documentclass{article} \begin{document} \section{LaTeX Style Sample} There is nothing to show, thank you for reading. \begin{enumerate}\item Apple is a kind of fruit.\item Cat is a kind of animal.\item Butterfly is …

git commit之后,回退撤销commit

在commit之后&#xff0c;发现有不需要提交的文件被提交上去了&#xff0c;好在还没有push到远端&#xff0c;需要撤回重新提交。如果是用的是Sourcetree的话,打开Sourcetree操作如下&#xff1a;找到提交之前的版本的记录右键这条提交记录&#xff0c;点击 将xxx重置到这次提交…

Ventoy安装deepin系统(windows和deepin双系统)

目录电脑安装虚拟机安装双系统安装&#xff08;windows和deepin&#xff09;美化deepin系统引导页其他链接电脑安装 我们先制作好Ventoy启动盘&#xff0c;然后插入电脑使用U盘启动 deepin系统镜像下载地址 windows系统镜像下载地址 windows激活软件 ,密码:ev5k windows镜像下载…

Maven实战-1.maven命令

前言 持续更新中… Maven命令 1.mvn help:system 打印出java所有的系统属性和环境变量。 2.mvn clean compile clean告诉Maven清理输出目录target/&#xff0c;compile告诉Maven编译项目的主代码&#xff08;src/main/java目录下&#xff09;。 不要问为什么只是编译了项…

Hive的Rank排名(rank函数,dense_rank函数,row_numer函数)

一、区别&#xff1a;三者通常都会配合窗口函数over()&#xff0c;并结合partition by order by xxx来分组排序&#xff0c;即形式使用&#xff1a;function_name over(partition by xxx order by xxx)。首先三者都是产生一个自增序列&#xff0c;不同的是row_number() 排序的字…

2023年SAT、ACT、AP、Alevel、IB考试时间表

2023年已经来临&#xff01;以下是2023年SAT、ACT、AP、A-Level、IB考试时间安排&#xff0c;早规划早备考&#xff0c;建议大家收藏&#xff01;2023 SAT从2023年开始&#xff0c;美国以外的所有SAT考试都将转为机考&#xff0c;美国SAT考试将在2024年全面转为机考。2023年一共…

前端Vue中实现超炫酷动态背景(全屏背景+自定义banner+登录/注册页)

一、文章引导 #mermaid-svg-9sKRaMRBkdCcbAh2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-9sKRaMRBkdCcbAh2 .error-icon{fill:#552222;}#mermaid-svg-9sKRaMRBkdCcbAh2 .error-text{fill:#552222;stroke:#55222…

29相似矩阵和若尔当型

一、知识概要 本节从正定矩阵的回顾谈起&#xff0c;介绍了相似矩阵和若尔当型。但是没有进行深入介绍&#xff0c;主要目的是让我们对这些变换方式有所了解。 二、正定矩阵补充 在上一节学习的正定矩阵的基础上&#xff0c;我们给出以下问题&#xff1a; &#xff08;1&…

2023年2月北京/广州/西安/深圳DAMA-CDGA/CDGP数据治理认证招生简章

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

uniapp:常用跨端业务组件

插件内组件包含以下功能&#xff1a; 自定义状态栏组件(ZoNavBar)上拉加载状态组件(ZoLoading)弹窗组件(ZoPopup)搜索组件(ZoSearchBar)空数据组件(ZoEmpty)tab标签组件(ZoTabs)tab下拉筛选组件(ZoSelectTabs)底部导航组件(ZoTabBar)cell导航组件(ZoCell) 10.标题内容组件(ZoT…

复试--数据结构篇[1-4章]

目录第一章 绪论第二章 线性表1-线性表的顺序表示&#xff08;顺序表&#xff09;2-线性表的链式表示&#xff08;链表&#xff09;&#xff08;1&#xff09;单链表&#xff08;2&#xff09;循环链表&#xff08;3&#xff09;双向链表3-顺序表和链表的比较4-线性表的应用第三…

Hyper-V中的虚拟机双网卡配置

Hyper-V中的虚拟机双网卡配置 在虚拟机交换管中 存在三种虚拟交换机分别是外部、内部和专用 内部网络&#xff1a;虚拟机与虚拟机访问宿主机&#xff0c;虚拟机可以访问物理网络 外部网络&#xff1a;虚拟机与虚拟机之间&#xff0c;虚拟机与宿主机之间&#xff0c;虚拟机或宿…

大数据学习路线

学习建议 #1、Java 这个没毛病&#xff0c;看 Java 程序员进阶之路就好了&#xff0c;Spring Boot 也要能掌握 #2、MySQL 要能写复杂的 SQL 语句&#xff0c;为后面学习 Hive 数仓的 HQL 打好基础。 #3、Linux 大数据的相关软件都是在 Linux 上运行的&#xff0c;所以 Linux …

Django默认的Auth权限管理系统的使用

1.Django默认已经提供了认证系统Auth模块。认证系统包含&#xff1a; 用户管理权限用户组密码哈希系统用户登录或内容显示的表单和视图一个可插拔的后台系统 admin Django默认用户的认证机制依赖Session机制&#xff0c;我们在项目中将引入JWT认证机制&#xff0c;将用户的身…

无法启动此程序,因为dll丢失的解决方法分享

大家在使用电脑的时候&#xff0c;应该经常会遇到这种情况吧&#xff1f;在你打开某些程序的时候&#xff0c;突然弹出一个框框说无法启动此程序&#xff0c;因为dll丢失&#xff0c;那么遇到这种情况&#xff0c;我们需要怎么去解决呢&#xff1f;今天小编就详细的给大家讲解一…

对象的序列化和反序列化

读写JSON格式的数据 通过上面的讲解&#xff0c;我们已经知道如何将文本数据和二进制数据保存到文件中&#xff0c;那么这里还有一个问题&#xff0c;如果希望把一个列表或者一个字典中的数据保存到文件中又该怎么做呢&#xff1f;在Python中&#xff0c;我们可以将程序中的数…