华为OD笔试机试真题算法 - 密码解密 (Java 2024年C卷D卷)

华为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);
  }
}


  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值