题目描述
【问题描述】
小明设计了一种文章加密的方法:对于每个字母 c,将它变成某个另外的字符 Tc。下表给出了字符变换的规则:
例如,将字符串 YeRi 加密可得字符串 EaFn。
小明有一个随机的字符串,加密后为
EaFnjISplhFviDhwFbEjRjfIBBkRyY
(由 30 个大小写英文字母组成,不包含换行符),请问原字符串是多少?
(如果你把以上字符串和表格复制到文本文件中,请务必检查复制的内容是否与文档中的一致。在试题目录下有一个文件 str.txt,第一行为上面的字符串,后面 52 行依次为表格中的内容。)
【答案提交】
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个只包含 30 个大小写英文字母的字符串,在提交答案时只填写这个字符串,填写多余的内容将无法得分。
代码实现
方式一
手工的进行字符串的转换(给的字符比较少,写代码不一定有手工快)
方式二
package com.atguigu.lanqiao;public class Main {public static void main(String[] args) {String str = "EaFnjISplhFviDhwFbEjRjfIBBkRyY"; // 加密后的字符char[] arr = str.toCharArray();String s1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 原字符String s2 = "yxmdacikntjhqlgoufszpwbrevYXMDACIKNTJHQLGOUFSZPWBREV"; // 加密后的字符String s3 = ""; // 解密后的字符for (int i = 0; i < arr.length; i++) {int j=s2.indexOf(arr[i]);s3+=s1.substring(j,j+1);}System.out.println(s3);}
}
答案
YeRikGSunlRzgDlvRwYkXkrGWWhXaA