时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大
写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z →
26。
这样一个字符串就能被转化成一个数字序列:
比如 ABCXYZ → 123242526。
现在给定一个转换后的数字序列,小明想还原出原本的字符串。当然这样
的还原有可能存在多个符合条件的字符串。小明希望找出其中字典序最大的字
符串。
【输入格式】
一个数字序列。
【输出格式】
一个只包含大写字母的字符串,代表答案
【样例输入】
123242526
【样例输出】
LCXYZ
【评测用例规模与约定】
对于 20% 的评测用例,输入的长度不超过 20。
对于所有评测用例,输入的长度不超过 200000。
import java.util.Scanner;
public class Case6 {
public static void main(String[] args) {
char[] a = {'0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
Scanner in = new Scanner(System.in);
String s = in.nextLine();
char[] arr = s.toCharArray();
for (int i = 1; i <= arr.length; i++) {
if (arr[i - 1] <= '2' && arr[i] <= '6') {
String s1 = arr[i - 1] + "" + arr[i];
int t1 = Integer.parseInt(s1);
System.out.print(a[t1]);
i++;
if (i == arr.length - 1 && arr[i - 1] > '2') {
int t3 = Integer.parseInt(arr[i] + "");
System.out.print(a[t3]);
break;
}
} else {
String s2 = arr[i - 1] + "";
int t2 = Integer.parseInt(s2);
System.out.print(a[t2]);
}
}
}
}