文章目录

  • 1. 题目
  • 2. 解题

1. 题目

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

  1. 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。
  2. 将替换表与普通英文字母表对齐,形成对照表。
  3. 按照对照表 替换 message 中的每个字母。
  4. 空格 ' ' 保持不变。

例如,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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 按题意模拟
class Solution:def decodeMessage(self, key: str, message: str) -> str:c = set()chars = [chr(ord('a')+i) for i in range(26)]idx = 0d = {}for x in key:if x not in c and x != ' ':c.add(x)d[x] = chars[idx]idx += 1return ''.join([d[x] if x in d else x for x in message])

32 ms 15.1 MB Python3


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2325. 解密消息(map)相关推荐

  1. 【算法leetcode】2325. 解密消息(rust和go重拳出击)

    文章目录 2325. 解密消息: 样例 1: 样例 2: 提示: 分析 题解 rust go typescript python c c++ java 原题传送门:https://leetcode.c ...

  2. python杂记-RSA加解密实现(4)-加解密消息及文件

    3.消息m分段与非负整数n之间的互相转换 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #2-10-3-6.py import base64 impor ...

  3. LeetCode 554. 砖墙(map计数)

    1. 题目 你的面前有一堵方形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是一个代表从左至右每块砖的宽度的整 ...

  4. leetcode 537 py 中map函数用法

    题目出自leetcode class Solution:def complexNumberMultiply(self, num1: str, num2: str) -> str:#(a0+b0i ...

  5. 46 -算法 - Leetcode -169 - 多数元素 - map insert 迭代器

    // map 的用法 m.insert返回值 std::pair<std::vector<int>::iterator, // // bool> res ,插入成功 res.s ...

  6. 【2月每日一题】leetcode Java + c++版 (6 完结)

    目录 2325. 解密消息 - 简单ac 1.哈希表 2.数组 2331. 计算布尔二叉树的值 - dfs ac 1233. 删除子文件夹 - 排序 2341. 数组能形成多少数对 - 简单ac 23 ...

  7. C#开发微信门户及应用(21)-微信企业号的消息和事件的接收处理及解密

    在上篇随笔<C#开发微信门户及应用(19)-微信企业号的消息发送(文本.图片.文件.语音.视频.图文消息等)>介绍了有关企业号的消息发送,官方特别声明消息是不用加密发送的.但是在回调的服务 ...

  8. 企业微信加密消息体_微信公众平台开发者中心安全模式消息体加解密实现

    关键字:微信公众平台 消息体签名 消息体加解密 EncodingAESKey 安全模式 一.消息体加解密 微信公众平台在配置服务器时,提供了3种加解密的模式供开发者选择,即明文模式.兼容模式.安全模式 ...

  9. 微信公众平台消息体加解密实现

    一.消息体加解密 微信公众平台在配置服务器时,提供了3种加解密的模式供开发者选择,即明文模式.兼容模式.安全模式,选择兼容模式和安全模式前,需在开发者中心填写消息加解密密钥EncodingAESKey ...

最新文章

  1. BCH扩容的摩尔定律——为什么BCH目前不选择分片?
  2. 傅里叶变换在图像处理中的作用
  3. Python基础:模块化来搭项目
  4. c语言管理系统信息以文件保存,求大神给一份能用的c语言的学籍管理系统:且能进行文件保存...
  5. 【开源工程】之裸码流提取工具--H264/H265
  6. 宠物兽医体层摄影术行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  7. 【转】Maven 手动添加 JAR 包到本地仓库
  8. 读取访问权限冲突怎么解决_CPU怎么保证内存访问冲突?一致性?
  9. linux源码编译ipk,OpenWrt-SDK-编译生成ipk软件包
  10. 聊聊加拿大的工作和生活
  11. Java实现 蓝桥杯VIP 算法提高 格子位置
  12. 2022年广西医院三基考试中医学综合训练题及答案
  13. java,你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si
  14. 178、锐捷交换机恢复出厂和各种基本配置
  15. 「SISTERS ~夏の最后の日~ Ultra Edition」资源提取
  16. 网站安全检测 漏洞检测 对thinkphp通杀漏洞利用与修复建议
  17. asp编程有用的例子
  18. Oracle11g新特性简介
  19. PHP文字转语音排号声音_要一个可以将文字转换成声音的软件
  20. Mixly 自定有OLED

热门文章

  1. abpa 设置选择屏幕的元素不可编辑
  2. 男孩子取名起名字:无私慷慨 拼搏自强的男孩名字
  3. php面试题 优信二手车_分布式定时任务对比 - sharedCode的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. k8s pod重启前的日志查看
  5. 基于EasyNVR摄像机网页无插件直播服务二次开发实现H5播放页面的简单集成方案
  6. wow_32_64 汇编调试器/注入器/汇编指令书写神器 V1.7
  7. python中and和or的区别-Python中and-or语法
  8. CnOpenData中国高新技术企业基本信息拓展数据
  9. ModelSim入门FPGA仿真基础教程之一:软件介绍
  10. PCB线路板的制作过程 2021-10-11