leetcode-6108:解密消息

简介: leetcode-6108:解密消息

题目

题目连接

给你字符串 keymessage ,分别表示一个加密密钥和一段加密消息。解密 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" 中每个字母的首次出现可以得到替换表。

解题

方法一:哈希表

1.通过哈希map,记录每个字母在key中第一次出现的顺序,并赋于相应的字母。

2.空格直接跳过,替换字母

class Solution {
public:
    string decodeMessage(string key, string message) {
        unordered_map<char,char> map;
        char c='a';
        for(int i=0;i<key.size();i++){
            if(key[i]==' ') continue;
            if(!map.count(key[i])){
                map[key[i]]=c;
                c++;
            }
        }
        for(int i=0;i<message.size();i++){
            if(message[i]==' ') continue;
            char c=message[i];
            message[i]=map[c];
        }
        return message;
    }
};
相关文章
|
15天前
|
消息中间件 Java Apache
RocketMQ消息回溯实践与解析
在分布式系统和高并发应用的开发中,消息队列扮演着至关重要的角色,而RocketMQ作为阿里巴巴开源的一款高性能消息中间件,以其高吞吐量、高可用性和灵活的配置能力,在业界得到了广泛应用。本文将围绕RocketMQ的消息回溯功能进行实践与解析,分享工作学习中的技术干货。
47 3
|
2月前
|
消息中间件 存储 负载均衡
RocketMQ 消息的顺序和重复
这篇文章探讨了RocketMQ中消息顺序和重复的问题,解释了为什么RocketMQ不保证消息顺序和不重复,并提供了解决这些问题的策略,包括消费端幂等性处理和使用日志表记录已处理消息ID,同时介绍了RocketMQ的事务消息、Producer和Consumer的最佳实践,以及其他配置和RocketMQ的基本概念。
28 0
RocketMQ 消息的顺序和重复
|
负载均衡 网络性能优化
EMQ如何保证消息不重复消费?
EMQ(Erlang MQTT Broker)通过以下机制来保证消息不重复消费
716 2
|
5月前
|
消息中间件 存储 Kafka
几种 MQ 顺序消息的实现方式
几种 MQ 顺序消息的实现方式
|
10月前
|
算法
【LeetCode刷题日志】232.用栈实现队列
【LeetCode刷题日志】232.用栈实现队列
|
Java Maven
Java实现163网易邮箱消息发送
Java实现163网易邮箱消息发送
162 0
经典例题:生产者/消费者
经典例题:生产者/消费者
29 0
|
C语言
【Leetcode】队列实现栈和栈实现队列
【Leetcode】队列实现栈和栈实现队列
57 0
|
搜索推荐 Cloud Native
【刷题日记】899. 有序队列
【刷题日记】899. 有序队列
|
算法 数据安全/隐私保护
图解LeetCode——2325. 解密消息
图解LeetCode——2325. 解密消息
74 0