企业网站管理的含义及内容,二级域名网站建设规范,做摄影网站的目的是什么意思,岗顶做网站公司OD统一考试#xff08;C卷#xff09; 分值#xff1a; 100分 题解#xff1a; Java / Python / C 题目描述
给定一段 “密文”字符串 s #xff0c;其中字符都是经过 “密码本” 映射的#xff0c;现需要将“密文”解密并且输出。
映射的规则#xff1a;
( a−i ) 分… OD统一考试C卷 分值 100分 题解 Java / Python / C 题目描述
给定一段 “密文”字符串 s 其中字符都是经过 “密码本” 映射的现需要将“密文”解密并且输出。
映射的规则
( a−i ) 分别用(1−9 )表示(j−z ) 分别用(10∗−26∗ )表示。
约束映射始终唯一。
输入描述
“密文”字符串
输出描述
明文字符串
示例1
输入
20*19*20*输出
tst说明
翻译后的文本长度在 100 以内。题解 基本思路是从密文字符串的末尾开始遍历根据规则进行解密并最终输出解密后的明文字符串。 关键点 对于包含 ‘*’ 的情况解析前两个字符进行相应的解密操作。对于不包含 ‘*’ 的情况进行简单的解密操作。在遍历过程中逐步构建解密后的密码。最后反转密码字符串因为是从末尾开始遍历的。 Java
import java.util.Scanner;/*** author code5bug*/
public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 读取输入文本String text in.next();// 存储解密后的密码StringBuilder pwd new StringBuilder();for (int i text.length() - 1; i 0; ) {if (text.charAt(i) *) {char c (char) (Integer.parseInt(text.substring(i - 2, i)) - 10 j);pwd.append(c);i - 3;} else {char c (char) (text.charAt(i) - 1 a);pwd.append(c);i - 1;}}// 输出解密后的密码System.out.println(pwd.reverse().toString());}
}
Python
# 读取输入文本
text input()# 存储解密后的密码
pwd []# 从字符串末尾开始遍历
i len(text) - 1
while i 0:if text[i] *:# 如果当前字符是 *则解析前两个字符并进行解密num int(text[i - 2:i])c chr(num - 10 ord(j))pwd.append(c)i - 3else:# 如果当前字符不是 *则进行简单解密c chr(ord(text[i]) - ord(1) ord(a))pwd.append(c)i - 1# 输出解密后的密码
print(.join(pwd[::-1]))
C
#include bits/stdc.h
using namespace std;int main(){string text;cin text;string pwd;int n text.length();for(int i n - 1; i 0; ){// 遇到 * 肯定解密 j - zif(text[i] *){char c stoi(text.substr(i - 2, 2)) - 10 j;pwd.push_back(c);i - 3;}else{ // 否则 a - ichar c text[i] - 1 a;pwd.push_back(c);i - 1;}}reverse(pwd.begin(), pwd.end());cout pwd endl;return 0;
}相关练习题
题号题目难易LeetCode 23252325. 解密消息简答 ❤️华为OD机试面试交流群每日真题分享 加V时备注“华为od加群” 整理题解不易 如果有帮助到您请给点个赞 ❤️ 和收藏 ⭐让更多的人看到。