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;
    }
};
相关文章
|
2月前
|
消息中间件
手撸MQ消息队列——循环数组
队列是一种常用的数据结构,类似于栈,但采用先进先出(FIFO)的原则。生活中常见的排队场景就是队列的应用实例。在数据结构中,队列通常用数组实现,包括入队(队尾插入元素)和出队(队头移除元素)两种基本操作。本文介绍了如何用数组实现队列,包括定义数组长度、维护队头和队尾下标(front 和 tail),并通过取模运算解决下标越界问题。此外,还讨论了队列的空与满状态判断,以及并发和等待机制的实现。通过示例代码展示了队列的基本操作及优化方法,确保多线程环境下的正确性和高效性。
44 0
手撸MQ消息队列——循环数组
|
3月前
|
消息中间件 存储 负载均衡
RocketMQ 消息的顺序和重复
这篇文章探讨了RocketMQ中消息顺序和重复的问题,解释了为什么RocketMQ不保证消息顺序和不重复,并提供了解决这些问题的策略,包括消费端幂等性处理和使用日志表记录已处理消息ID,同时介绍了RocketMQ的事务消息、Producer和Consumer的最佳实践,以及其他配置和RocketMQ的基本概念。
46 0
RocketMQ 消息的顺序和重复
|
4月前
|
消息中间件 SQL RocketMQ
【RocketMQ系列五】消息示例-顺序消息&延迟消息&广播消息的实现
【RocketMQ系列五】消息示例-顺序消息&延迟消息&广播消息的实现
78 1
|
6月前
|
消息中间件 编解码 Java
|
6月前
|
消息中间件 存储 Kafka
几种 MQ 顺序消息的实现方式
几种 MQ 顺序消息的实现方式
经典例题:生产者/消费者
经典例题:生产者/消费者
33 0
|
iOS开发 Python
Python实现微信消息连续发送
Python实现微信消息连续发送
Python实现微信消息连续发送
|
消息中间件 存储 RocketMQ
【视频】顺序消息| 学习笔记
快速学习【视频】顺序消息
【视频】顺序消息| 学习笔记
|
消息中间件 Java
浅析什么是顺序消息?
在日常开发中,或多或少的都遇到过顺序消息的使用场景,那么为什么要使用顺序消息呢?如果不使用顺序消息会有什么问题吗?市面上的消息中间件又是如何实现的呢?
218 0
浅析什么是顺序消息?