当前位置: 首页 > news >正文

(新卷,100分)- 密码解密(Java JS Python C)

(新卷,100分)- 密码解密(Java & JS & Python & C)

题目描述

给定一段“密文”字符串 s,其中字符都是经过“密码本”映射的,现需要将“密文”解密并输出。

映射的规则('a' ~ 'i')分别用('1' ~ '9')表示;('j' ~ 'z')分别用("10*" ~ "26*")表示。

约束:映射始终唯一。

输入描述

“密文”字符串

输出描述

明文字符串

备注

翻译后的文本长度在100以内

用例
输入20*19*20*
输出tst
说明
题目解析

本题有多种解题思路,我的思路是利用字符串替换操作。

即将如下密文和明文进行按照顺序依次映射替换

  • "26*" → "z"
  • "25*" → "y"
  • ...
  • "10*" → "j"
  • "9" → "i"
  • ...
  • "1" → "a"

这里优先将从“26*” ~ "10*" 开始映射替换,比如题目用例:

20*19*20*

如果优先进行 "1" ~ “9” 密文的映射替换,则会产生错误答案。

更多实现细节,请看代码。

JS算法源码
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; // 输入处理 void (async function () { let s = await readline(); for (let i = 26; i >= 1; i--) { const key = i + (i > 9 ? "*" : ""); const val = String.fromCharCode(97 + i - 1); s = s.replaceAll(key, val); } console.log(s); })();
Java算法源码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); for (int i = 26; i >= 1; i--) { String key = i + (i > 9 ? "\\*" : ""); String val = String.valueOf((char) ('a' + i - 1)); s = s.replaceAll(key, val); } System.out.println(s); } }
Python算法源码
# 输入获取 s = input() for i in range(26, 0, -1): key = str(i) if i > 9: key += "*" val = chr(97 + i - 1) s = s.replace(key, val) print(s)
C算法源码
#include <stdio.h> #include <stdlib.h> #include <string.h> char* replace(char* s, char* old, char* new) { char* sub = strstr(s, old); if(sub == NULL) { return s; } char* res = (char*) calloc(100, sizeof(char)); while (sub != NULL) { sub[0] = '\0'; strcat(res, s); strcat(res, new); s = sub + strlen(old); sub = strstr(s, old); } strcat(res, s); return res; } int main() { char* s = (char*) calloc(100, sizeof(char)); gets(s); for (int i = 26; i >= 1; i--) { char key[4]; sprintf(key, "%d", i); if(i > 9) { strcat(key, "*"); } char val[2]; sprintf(val, "%c", 97 + i - 1); s = replace(s, key, val); } puts(s); return 0; }
http://www.zskr.cn/news/177100.html

相关文章:

  • 本地无GPU也能炼丹?云端调用PyTorch-CUDA-v2.8镜像训练模型
  • Java计算机毕设之基于springboot的社区家政服务系统基于springboot的家政服务撮合与评价平台(完整前后端代码+说明文档+LW,调试定制等)
  • Git下载大文件LFS扩展使用指南:应对PyTorch模型体积大难题
  • 清华镜像源配置成功后仍无法加速?排查DNS污染问题
  • python flask django网约车司机在线叫预约系统vue
  • PyTorch-CUDA-v2.8镜像与Hugging Face Transformers无缝集成
  • Log4j2-CVE-2021-44228漏洞复现
  • Markdown语法进阶:用于编写高质量AI实验日志
  • OSSU数学课程:免费自学数学的完整路线图
  • 基于Java的基础设施智慧管理系统的设计与实现全方位解析:附毕设论文+源代码
  • 2025国内最新企业展厅服务商 TOP5 评测!服务深耕于四川、成都、广州、北京、云南等地区,国内优质企业展示服务厂家权威榜单发布,重塑企业展示新生态 - 全局中转站
  • 告别环境配置烦恼:PyTorch-CUDA-v2.8开箱即用深度学习环境
  • 12/29
  • Fastjson反序列化漏洞(1.2.24版本)
  • for myself
  • python flask django企业员工工资管理系统vue--03j8q
  • Conda List列出已安装包:检查PyTorch版本信息
  • 如何在PyTorch-CUDA-v2.8中安装额外Python包?方法总结
  • Git标签管理:为PyTorch模型版本打上里程碑
  • Docker Run参数详解:启动PyTorch容器的各类选项
  • 基于Java的塔吊租赁智慧管理系统的设计与实现全方位解析:附毕设论文+源代码
  • HuggingFace TrainingArguments参数详解:控制训练行为
  • 2025国内最新数字科技展厅企业top5推荐!服务深耕于四川、成都、广州、北京、云南等地区,国内优质数字展示服务厂家及品牌权威榜单发布,创新重构展示空间生态 - 全局中转站
  • YOLOv5部署到边缘设备:基于PyTorch Mobile的尝试
  • PyTorch Gradient Clipping:稳定大模型训练过程
  • GitHub Gist分享代码片段:快速传播PyTorch技巧
  • HuggingFace Inference API调用:无需GPU运行大模型
  • Jupyter Notebook单元测试:验证PyTorch函数正确性
  • Jupyter Notebook主题切换:个性化开发界面风格
  • Git Stash暂存更改:临时切换上下文处理紧急PyTorch任务