当前位置:网站首页>leetcode-6108:解密消息
leetcode-6108:解密消息
2022-07-05 05:46:00 【菊头蝙蝠】
题目
题目连接
给你字符串 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" 中每个字母的首次出现可以得到替换表。
解题
方法一:哈希表
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;
}
};
边栏推荐
猜你喜欢
Sword finger offer 58 - ii Rotate string left
API related to TCP connection
Chapter 6 data flow modeling - after class exercises
1.14 - 流水线
AtCoder Grand Contest 013 E - Placing Squares
剑指 Offer 58 - II. 左旋转字符串
How to adjust bugs in general projects ----- take you through the whole process by hand
全排列的代码 (递归写法)
Pointnet++ learning
6. Logistic model
随机推荐
Analysis of backdoor vulnerability in remote code execution penetration test / / phpstudy of national game title of national secondary vocational network security B module
One question per day 2047 Number of valid words in the sentence
Graduation project of game mall
常见的最优化方法
kubeadm系列-01-preflight究竟有多少check
Sword finger offer 09 Implementing queues with two stacks
CF1637E Best Pair
Maximum number of "balloons"
浅谈JVM(面试常考)
Annotation and reflection
Binary search template
Configuration and startup of kubedm series-02-kubelet
Using HashMap to realize simple cache
How to adjust bugs in general projects ----- take you through the whole process by hand
剑指 Offer 53 - II. 0~n-1中缺失的数字
每日一题-无重复字符的最长子串
[practical skills] how to do a good job in technical training?
Sword finger offer 53 - ii Missing numbers from 0 to n-1
Talking about JVM (frequent interview)
卷积神经网络简介