?給定一段“密文”字符串s,其中字符都是經(jīng)過(guò)"密碼本”映射的,現(xiàn)需要將“密文”解密并且輸出映射的規(guī)則 ("a-i"分別用"1-9"表示,"j-z" 分別用"10-26"表示
?約束:映射始終唯一
?輸入:201920*
?輸出:tst
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
Map<String,Character> tempMap = new HashMap<>();
for(int i = 1;i < 27;i++){
if(i < 10){
Character sa = (char)(i - 1 + 'a');
tempMap.put(String.valueOf(i),sa);
}else{
StringBuffer ss = new StringBuffer();
Character sa = (char)(i - 1 + 'a');
ss.append(String.valueOf(i)).append("*");
tempMap.put(ss.toString(),sa);
}
}
StringBuffer res = new StringBuffer();
for(int i = 0;i < s.length();i++){
int sum = 0;
if(i + 2 < s.length()&&!Character.isDigit(s.charAt(i + 2))){
sum = sum * 10 + s.charAt(i) - '0';
sum = sum * 10 + s.charAt(i + 1) - '0';
StringBuffer ss = new StringBuffer();
ss.append(String.valueOf(sum)).append("*");
//從tempMap獲取結(jié)果
res.append(tempMap.get(ss.toString()));
i = i + 2;
}else{
StringBuffer ss = new StringBuffer();
ss.append(String.valueOf(s.charAt(i) - '0'));
//從tempMap獲取結(jié)果
res.append(tempMap.get(ss.toString()));
}
}
System.out.print(res);
}
}