第十一届蓝桥杯 试题 I: 字符串编码

时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分

【问题描述】

小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大

写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z →

26。

这样一个字符串就能被转化成一个数字序列:

比如 ABCXYZ → 123242526。

现在给定一个转换后的数字序列,小明想还原出原本的字符串。当然这样

的还原有可能存在多个符合条件的字符串。小明希望找出其中字典序最大的字

符串。

【输入格式】

一个数字序列。

【输出格式】

一个只包含大写字母的字符串,代表答案

【样例输入】

123242526

【样例输出】

LCXYZ

【评测用例规模与约定】

对于 20% 的评测用例,输入的长度不超过 20。

对于所有评测用例,输入的长度不超过 200000。

package com.lqb.第十一届;

import java.util.Scanner;

public class Demo9 {

	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 sc = new Scanner(System.in);
		String data = sc.next();
		char b[] = data.toCharArray();
		for (int i = 0; i < b.length; i++) {
			String data2 = b[i] + "" + b[i + 1];

			int c = Integer.parseInt(data2);
			if (c >= 1 && c <= 26) {
				System.out.print(a[c]);
				i++;
			} else {
				data2 = b[i] + "";
				c = Integer.parseInt(data2);
				System.out.print(a[c]);
			}
		}
	}

}

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页