华为机考HJ29题解 | #字符串加解密#

字符串加解密

https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {  
            String a = in.nextLine(); 
            String b = in.nextLine(); 
            System.out.println(adMethod(a));
            System.out.println(reMethod(b));
        }
    }
    private static String adMethod(String ps){
        char[] a=ps.toCharArray();
        for(int i=0;i<a.length;i++){
             int asci=(int)a[i];
             if(asci>='0'&&asci<'9'){//数字
                 a[i]=(char)(a[i]+1);
             }else if(asci=='9'){
                a[i]='0';
             }else if(asci>='a'&&asci<'z'){
                a[i]=(char)(a[i]-'a'+'A'+1);
             }else if(asci=='z'){
                a[i]='A';
             }else if(asci>='A'&&asci<'Z'){
                a[i]=(char)(a[i]-'A'+'a'+1);
             }else if(asci=='Z'){
                a[i]='a';
             }
        }

        return new String(a);
    }
     private static String reMethod(String ps){
        char[] a=ps.toCharArray();
        for(int i=0;i<a.length;i++){
             int asci=(int)a[i];
             if(asci>'0'&&asci<='9'){//数字
                 a[i]=(char)(a[i]-1);
             }else if(asci=='0'){
                a[i]='9';
             }else if(asci>'a'&&asci<='z'){
                a[i]=(char)(a[i]-'a'+'A'-1);
             }else if(asci=='a'){
                a[i]='Z';
             }else if(asci>'A'&&asci<='Z'){
                a[i]=(char)(a[i]-'A'+'a'-1);
             }else if(asci=='A'){
                a[i]='z';
             }
        }

        return new String(a);
        
    }
}

题目:

描述

对输入的字符串进行加解密,并输出。

加密方法为:

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;

其他字符不做变化。

解密方法为加密的逆过程。

数据范围:输入的两个字符串长度满足

 

1≤𝑛≤1000 1≤n≤1000 

 

,保证输入的字符串都是只由大小写字母或者数字组成

输入描述:

第一行输入一串要加密的密码

第二行输入一串加过密的密码

输出描述:

第一行输出加密后的字符

第二行输出解密后的字符

示例1

输入:

abcdefg
BCDEFGH

输出:

BCDEFGH
abcdefg

解题要点:

char类型在四则运算及比较中,会自动转为ASCII码进行计算,但是要变回字符需强制转换;

全部评论

相关推荐

在评审的菠萝蜜很成熟:舵轮步兵多写点呗,第一个项目更像单纯算法内容了
在找工作求抱抱
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务