首页 > 其他分享 >【蓝桥杯】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在26个英文字母中序号,即A→1,B→2, ... Z→ 26。这样一个字符串就能被转化成一个数字序列

【蓝桥杯】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在26个英文字母中序号,即A→1,B→2, ... Z→ 26。这样一个字符串就能被转化成一个数字序列

时间:2024-04-02 19:59:03浏览次数:18  
标签:小明 26 Scanner 样例 大写字母 字符串 public

【问题描述】

小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大 写字母,小明将它转换成它在26个英文字母中序号,即A→1,B→2, ... Z→ 26。

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

比如ABCXYZ→123242526。

现在给定一个转换后的数字序列,小明想还原出原本的字符串。当然这样 的还原有可能存在多个符合条件的字符串。小明希望找出其中字典序最大的字 符串。

【输入格式】

一个数字序列。

【输出格式】

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

【样例输入】

123242526

【样例输出】

LCXYZ

【评测用例规模与约定】

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

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

代码如下: 

方法一:
import java.util.Scanner;
import java.util.HashMap;

public class Main{

	public static void main(String[] args) {
		 HashMap<Integer,Character> map=new HashMap<>();
	        for(int i=1;i<=26;i++) {
	        	map.put(i,(char)('A'+i-1));
	        }
        Scanner sc=new Scanner(System.in);
        String s=sc.next();
        char[] a=s.toCharArray();
        String res="";
        for(int i=0;i<s.length();i++) {
        	String s1=""+a[i]+a[i+1];
        	int i1=Integer.parseInt(s1);
        	if(i1>=1&&i1<=26) {
        		res+=map.get(i1);
        		i++;
        	}else {
        		String s2=""+a[i];
        		int i2=Integer.parseInt(s2);
        		res+=map.get(i2);
        	}
        }
        System.out.println(res);
	}

}
方法二:
import java.util.Scanner;
public class Main{

	public static void main(String[] args) {
        char[] a= {'3','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 scanner=new Scanner(System.in);
        String i=scanner.next();
        char[] c=i.toCharArray();
        for(int j=0;j<c.length;j++) {
        	String x=""+c[j]+c[j+1];
        	int i1=Integer.parseInt(x);
        	if(i1>=1&&i1<=26) {
        		System.out.print(a[i1]);
        		j++;
        	}else {
        		String x2=""+c[j];
        		int i2=Integer.parseInt(x2);
        		System.out.print(a[i2]);
        	}
        }
	}

}
【样例输入】

123242526

【样例输出】

LCXYZ

标签:小明,26,Scanner,样例,大写字母,字符串,public
From: https://blog.csdn.net/qq_51980838/article/details/137286791

相关文章

  • 26版SPSS操作教程(初级第十四章)
    前言#由于导师最近布置了学习SPSS这款软件的任务,因此想来平台和大家一起交流下学习经验,这期推送内容接上一次第十三章的学习笔记,希望能得到一些指正和帮助~粉丝及官方意见说明#针对官方爸爸的意见说的推送缺乏操作过程的数据案例文件澄清如下:1、操作演示的数据全部由我本人......
  • 26版SPSS操作教程(初级第十五章)
    前言#由于导师最近布置了学习SPSS这款软件的任务,因此想来平台和大家一起交流下学习经验,这期推送内容接上一次第十四章的学习笔记,希望能得到一些指正和帮助~粉丝及官方意见说明#针对官方爸爸的意见说的推送缺乏操作过程的数据案例文件澄清如下:1、操作演示的数据全部由我本人......
  • 3.26
    所花时间:4h代码行:300博客量:2学到的知识:创建Web服务:在服务器端创建一个Web服务,用于处理Android应用程序发送过来的请求,并与MySQL数据库进行交互。配置网络权限:在Android应用程序的清单文件(AndroidManifest.xml)中添加网络权限,以允许应用程序与Web服务进行通信。示例代码如......
  • 3月26日
    运行FaceRecognitionAdmin项目,这个是Django项目,我用pycharm运行,但是创建虚拟环境、下载依赖的时候,出错了,下载dlib不成功,说是cmake有问题,但是我明明正常下载了cmake,搜索了很多博客,也找不到解决的办法花了好多时间,也找厉害的朋友帮忙看了,也没解决掉。 ......
  • 2642. 设计可以求最短路径的图类(中等)
    核心思想Dijkstra+堆优化模板题,每次查询做一次最短路查询即可。classGraph{privateList<int[]>[]nxt;publicGraph(intn,int[][]edges){nxt=newList[n];for(inti=0;i<n;i++){nxt[i]=newArrayList<>();......
  • 2617. 网格图中最少访问的格子数(困难)
    核心思想比较直观的想法就是BFS,但是每次遍历能走的点(右走,下走)会超时考虑用两个set数组,TreeSet<Integer>[]R=newTreeSet[n];TreeSet<Integer>[]C=newTreeSet[m];R[i]表示第i行还剩下哪些列col没去过,那么遍历就变为了二分查找第一个比当前j大的col当col>......
  • redis自学(26)
    内存淘汰策略内存淘汰:就是当Redis内存使用达到设置的阈值时,redis主动挑选部分key删除以释放更多内存的流程。Redis会在处理客户端命令的方法processCommand()中尝试做内存淘汰:  也就是说,redis是在任何命令执行之前,做内存的检查或者说尝试去淘汰一部分内存。 Redis支持8......
  • 2673. 使二叉树所有路径值相等的最小代价
    思路先看3节点的子树,想要路径值相同,只能修改叶子节点的值,如上图只能2去+1操作。核心思想:那么对于任意左右孩子节点,想要从根节点下来的路径相同,只能修改孩子节点。所以我们只需要从下至上记录叶子节点到当前节点的路径值,然后计算当前节点和右节点的差值。详细看灵神树上贪心......
  • 【蓝桥杯】小明要做一个跑步训练。初始时,小明充满体力,体力值计为10000。如果小明跑步,
    【问题描述】小明要做一个跑步训练。初始时,小明充满体力,体力值计为10000。如果小明跑步,每分钟损耗600的体力。如果小明休息,每分钟增加300的体力。体力的损耗和增加都是均匀变化的。小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻......
  • ESP8266_Servo
    Servo的使用,以SG90舵机为例舵机控制说明(Servo.h里时间单位都是微秒us,角度是°)舵机通过脉冲宽度的时间来控制(PWM),频率是50Hz的(即一个周期是20ms)。(!!!脉宽是本质)SG90舵机的控制参数范围是:0°:0.5ms,180°:2.5ms。然后对于每一度,将脉宽范围除以180°即得。servo.attach......