牛客:HJ21 简单密码

java 复制代码
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        StringBuilder builder = new StringBuilder();
        int num = 'a' - 'A';
        for(int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            if(c >= 'a' && c <= 'c'){
                builder.append(2);
            } else if(c >= 'd' && c <= 'f'){
                builder.append(3);
            } else if(c >= 'g' && c <= 'i'){
                builder.append(4);
            } else if(c >= 'j' && c <= 'l'){
                builder.append(5);
            } else if(c >= 'm' && c <= 'o'){
                builder.append(6);
            } else if(c >= 'p' && c <= 's'){
                builder.append(7);
            } else if(c >= 't' && c <= 'v'){
                builder.append(8);
            } else if(c >= 'w' && c <= 'z'){
                builder.append(9);
            } else if(c >= 'A' && c < 'Z'){
                builder.append((char) (c + num + 1));
            } else if(c == 'Z'){
                builder.append('a');
            } else {
                builder.append(c);
            }
        }
        System.out.println(builder.toString());
    }
}

描述

规定这样一种密码的变换方法:

∙ ∙对于密码中的小写字母,参考九键手机键盘,将它们映射为对应的数字,具体地,abcabc 对应数字 22 、defdef 对应数字 33 、ghighi 对应数字 44 、jkljkl 对应数字 55 、mnomno 对应数字 66 、pqrspqrs 对应数字 77 、tuvtuv 对应数字 88 、wxyzwxyz 对应数字 99 ;

∙ ∙对于密码中的大写字母,先将其转换为小写,然后向后移动一位,即 ZZ 转换为 aa ,AA 转换为 bb ,BB 转换为 cc ,⋯⋯ ,YY 转换为 zz ,ZZ 转换为 aa 。

∙ ∙对于密码中的数字,保持不变。

现在,请你将给定的密码按照上述规则进行变换。

输入描述:

在一行上输入一个长度为 1≦length(s)≦1001≦length(s)≦100 的字符串 ss ,代表给定的密码。

输出描述:

在一行上输出一个字符串,代表变换后的密码。

思路:

1.一一对应按照题目要求;

2.大小写转换,不记得的话就直接减法计算

相关推荐
软件派31 分钟前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法
code2cat1 小时前
Java工具篇之Maven:从pom.xml到测试通过的JAR
xml·java·maven
wuminyu8 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
txxzjmzlh8 小时前
SpringBoot 配置⽂件
java·spring boot·spring
小徐不徐说8 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ZhengEnCi8 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
ragnwang8 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
Wang's Blog8 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
骑着蜗牛撵大象3279 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
独泪了无痕9 小时前
Hutool之LocalDateTimeUtil:让时间间隔操作如虎添翼
java