news 2026/5/12 17:53:15

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(新卷,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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 19:53:22

清华镜像源配置成功后仍无法加速?排查DNS污染问题

清华镜像源配置成功后仍无法加速&#xff1f;排查DNS污染问题 在人工智能开发的日常中&#xff0c;你是否经历过这样的场景&#xff1a;明明已经配置了清华PyPI镜像源&#xff0c;执行 pip install torch 却依然卡在“Retrying (Retry(total4…”上&#xff0c;下载速度只有几…

作者头像 李华
网站建设 2026/5/9 1:20:12

PyTorch-CUDA-v2.8镜像用户权限安全管理最佳实践

PyTorch-CUDA-v2.8镜像用户权限安全管理最佳实践 在AI研发环境日益容器化的今天&#xff0c;一个预装了PyTorch与CUDA的Docker镜像看似只是“省去了pip install的时间”&#xff0c;实则牵动着整个团队的开发效率与系统安全。尤其当多个研究人员共享同一GPU服务器时&#xff0c…

作者头像 李华
网站建设 2026/5/12 9:12:04

Docker Compose部署PyTorch-CUDA-v2.8实现CI/CD流水线

Docker Compose部署PyTorch-CUDA-v2.8实现CI/CD流水线 在现代AI研发节奏日益加快的背景下&#xff0c;一个常见的困境浮出水面&#xff1a;研究人员在本地训练良好的模型&#xff0c;一旦进入测试或生产环境却频频报错——“CUDA not available”、“版本不兼容”、“依赖缺失”…

作者头像 李华
网站建设 2026/5/2 17:47:33

Docker Compose配置GPU设备映射实现容器化训练

Docker Compose配置GPU设备映射实现容器化训练 在深度学习项目开发中&#xff0c;一个常见的困扰是&#xff1a;本地能跑通的模型&#xff0c;换到服务器上却频频报错——“CUDA not available”、“cuDNN version mismatch”……这类问题往往源于环境差异。更糟的是&#xff…

作者头像 李华
网站建设 2026/5/3 14:33:33

Markdown生成PDF文档:方便分享PyTorch实验报告

Markdown生成PDF文档&#xff1a;方便分享PyTorch实验报告 在深度学习项目中&#xff0c;模型训练只是第一步。真正决定一个研究是否可信、能否被复现的关键&#xff0c;往往在于实验过程的透明记录与成果的清晰呈现。你有没有遇到过这样的场景&#xff1a;花了几周时间调出一个…

作者头像 李华
网站建设 2026/4/29 15:20:38

国学大师:灵遁者在易学领域的三部著作

灵遁者在易学领域的专业贡献主要体现在其国学三部曲系列作品中&#xff0c;这些著作系统性地整合了传统相学、中医诊断和术数理论&#xff0c;并以创新方法和实用性为特点。以下从专业深度、创新性和影响力角度分析其最突出的三个方向。相学理论与实践&#xff1a;灵遁者在《相…

作者头像 李华