欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java字符串编码

程序员文章站 2022-07-10 08:55:04
不要自卑,去提升实力互联网行业谁技术牛谁是爹如果文章可以带给你能量,那是最好的事!请相信自己加油o~ 点击下面链接蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)问题描述:问题描述小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z →26。这样一个字符串就能被转化成一个数字序列:比如 ABCXYZ → 123242526。现在给定一个转换后的.....

不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油o~

Java字符串编码

点击下面链接
蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)

问题描述:

问题描述
小明发明了一种给由全大写字母组成的字符串编码的方法。
对于每一个大写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z →26。
这样一个字符串就能被转化成一个数字序列:比如 ABCXYZ → 123242526。
现在给定一个转换后的数字序列,小明想还原出原本的字符串。
当然这样的还原有可能存在多个符合条件的字符串。
小明希望找出其中字典序最大的字符串。
输入格式
一个数字序列。
输出格式
一个只包含大写字母的字符串,代表答案
样例输入
123242526
样例输出
LCXYZ
评测用例规模与约定
对于 20% 的评测用例,输入的长度不超过 20。
对于所有评测用例,输入的长度不超过 200000。

Java字符串编码
解题思路:

> 定义一个arr数组存取26个英文字母,便于使用,对应位置存储
> 首先遍历数列,如果第一个数+第二个数<=26,说明存在字典序更大的字母
> 这样添加后记得i++,因为i向后移动了一位
> 否则添加原位置的字母
> 注意判断i+1是否越界

代码:

public class Main {
	public static char[] arr= {
			'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'
	};
    public static void main(String[] args){
    	Scanner sc=new Scanner(System.in);
    	String string=sc.next();
    	String res="";
    	for(int i=0;i<string.length();i++) {
    		if(i+1<string.length()) {
    			int x=(string.charAt(i)-'0')*10+(string.charAt(i+1)-'0');
    			if(x<=26) {
    				res+=new String().valueOf(arr[x]);
    				i++;
    			}
    			else {
    				res+=new String().valueOf(arr[string.charAt(i)-'0']);
        		}
    		}
    		else {
    			res+=new String().valueOf(arr[string.charAt(i)-'0']);
    		}
    	}
    	System.out.println(res);
	} 
}

本文地址:https://blog.csdn.net/m0_47256162/article/details/110496615