第十一届省赛——9字符串编码
创始人
2024-06-02 08:41:11
0

题目:

本题总分:25 分

【问题描述】

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

对于每一个大写字母,小明将它转换成它在 26 个英文字母中序号,

即 A → 1, B → 2, … Z →26。

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

比如 ABCXYZ → 123242526。

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

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

【输入格式】

一个数字序列。

【输出格式】

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

【样例输入】

123242526

【样例输出】

LCXYZ

【评测用例规模与约定】

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

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

分析:

我们先把扫描器输入的内容转为char数组,然后用n索引记录用来,如果第一项是0那么直接忽略,第一项1-9那么这一项,连上后一项,再integer.parseint转为int判断是不是小于26,如果小于26那么直接加入集合中,如果大于27那么只加入一项到集合中,直到加到最后一项直接加入就结束了

步骤:

package 第十一届省赛;import java.util.ArrayList;
import java.util.Scanner;public class 字符串编码 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);char[] ch = sc.next().toCharArray();// 扫描器出来直接转为char数组ArrayList arr = new ArrayList<>();int n = 0;// 用来记录第几个while (n < ch.length) {// 只要个数小于数组长度if (ch[n] == '0') {// 数字等于0时不输出,个数加一n++;}if (n + 1 < ch.length) {//只要不是最后一项int temp = Integer.parseInt("" + ch[n] + ch[n + 1]);//前两项通过字符串连在一块if (temp < 27) {arr.add("" + (char) (temp + 'A' - 1));//前两项长度小于26n += 2;//记录个数加二} else {arr.add("" + (char) (Integer.parseInt(ch[n] + "") + 'A' - 1));//够了27那么直接加入第一项n++;}} else {//是最后一项就直接加入集合进去arr.add("" + (char) (Integer.parseInt(ch[n] + "") + 'A' - 1));n++;}}for (int i = 0; i < arr.size(); i++) {//遍历集合内的System.out.print(arr.get(i));}}}
                
            
            
            
            
            
            

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...