华为OD机试(C卷+D卷)2024真题目录(Java & c++ & python)
题目描述
给定一段“密文”字符串 s,其中字符都是经过“密码本”映射的,现需要将“密文”解密并输出。
映射的规则(‘a’ ~ ‘i’)分别用(‘1’ ~ ‘9’)表示;(‘j’ ~ ‘z’)分别用(“10*” ~ “26*”)表示。
约束:映射始终唯一。
输入描述
“密文”字符串
输出描述
明文字符串
备注:翻译后的文本长度在100以内
示例1
输入
20*19*20*
输出
tst
解题思路
直接替换,先从“10*” ~ “26*”开始替换(因为包含了’1’-'9’的字符),之后再替换‘1’ ~ ‘9’。
参考代码
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);
}
}
标签:26,Java,Scanner,映射,真题,OD,密文,字符串,String
From: https://blog.csdn.net/hrr397117313/article/details/140767955