news 2026/6/10 14:37:09

(新卷,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/23 22:12:33

基于SSM的在线订餐管理系统【源码+文档+调试】

&#x1f525;&#x1f525;作者&#xff1a; 米罗老师 &#x1f525;&#x1f525;个人简介&#xff1a;混迹java圈十余年&#xff0c;精通Java、小程序、数据库等。 &#x1f525;&#x1f525;各类成品Java毕设 。javaweb&#xff0c;ssm&#xff0c;springboot等项目&#…

作者头像 李华
网站建设 2026/6/7 5:23:04

python flask django企业员工工资管理系统vue--03j8q

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python flask django企业员工工资管理…

作者头像 李华
网站建设 2026/6/10 1:04:57

python flask django高层住宅电梯广告系统更新服务vue

目录 已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python flask django高层住宅电梯广…

作者头像 李华
网站建设 2026/6/10 13:05:25

python flask django高校返校防疫登记系统vue

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python flask django高校返校防疫登记…

作者头像 李华
网站建设 2026/6/10 11:49:39

HuggingFace AutoClasses自动类加载:灵活适配模型

HuggingFace AutoClasses 与 PyTorch-CUDA 镜像&#xff1a;构建高效、灵活的 AI 开发闭环 在如今这个模型即服务&#xff08;MaaS&#xff09;盛行的时代&#xff0c;开发者面对的不再是“有没有模型可用”&#xff0c;而是“如何快速、稳定、低成本地用好成千上万种模型”。H…

作者头像 李华