描述
现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 1–1, abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–7, tuv–8 wxyz–9, 0–0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。
数据范围: 输入的字符串长度满足 1≤n≤100

package com.wy.leetcode;import java.util.Scanner;/*** HJ21 简单密码* @author HelloWorld* @create 2022/4/18 21:31* @email helloworld.dng@gmail.com*/
public class EasyPassword {/** 秘文 */private final static String PRIVATEKEY = "abcdefghijklmnopqrstuvwxyz";/** 明文 */private final static String PUBLICKEY  = "22233344455566677778889999";/** 大写字母规则 */private final static String UPPER_LETTER_RULE = "[A-Z]";/** 小写字母规则 */private final static String LOWER_LETTER_RULE = "[a-z]";public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {String string = scanner.next();String result = "";for (int i = 0; i < string.length(); i++) {result += getPublicKey(string.charAt(i) + "");}System.out.println(result);}}/*** @description 加密,将秘文转为明文* @author HelloWorld* @create 2022/4/18 22:13* @param str* @return java.lang.String*/private static String getPublicKey(String str) {// 大写字母则变成小写之后往后移一位 Z 往后移是 aif (str.matches(UPPER_LETTER_RULE)) {switch (str) {case "Z":return "a";default:return (char)(str.toLowerCase().toCharArray()[0] + 1 ) + "";}}// 小写字母都变成九键键盘对应的数字if (str.matches(LOWER_LETTER_RULE)) {return PUBLICKEY.charAt(PRIVATEKEY.indexOf(str)) + "";}// 数字和其他字符return str;}}

华为机试 HJ21简单密码【java实现】相关推荐

  1. 华为机试HJ21 简单密码

    HJ21 简单密码-Python 题目 解题思路 代码 结果 题目 解题思路 1.多组输入,需要循环处理 2.条件不多,但是判断和替换会增加代码量,使用字典完成字符和加密后字符的对应关系设置 3.输入 ...

  2. 华为机试HJ21:简单密码

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了.哇哈哈. 接下 ...

  3. 华为机试HJ87:密码强度等级

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 ...

  4. 华为机试HJ32:密码截取

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 该题目是一道密码加密题,密码混合在复杂字符串中,是一个对称子字符串,比如12321A ...

  5. 华为机试HJ20:密码验证合格程序

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 密码要求: 1.长度超过8位 2.包括大小写字母.数字.其它符号,以上四种至少三种 ...

  6. 【牛客网华为机试】HJ32 密码截取

    题目 描述 Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解.比 ...

  7. 【华为机试Python3题解】HJ21简单密码

    文章目录 题目介绍 题解1:逐一情况处理 题解2:提前建映射表 题目介绍 原题链接:HJ21 简单密码 描述 现在有一种密码变换算法. 九键手机键盘上的数字与字母的对应: 1–1, abc–2, de ...

  8. Java算法:华为机试算法(下),华为算法Java版,牛客网华为算法73~108题

    接上篇:Java算法:华为机试算法(中),华为算法Java版,牛客网华为算法55~72题   HJ73 计算日期到天数转换 计算日期到天数转换 题目描述 根据输入的日期,计算是这一年的第几天.. 测试 ...

  9. 【华为机试真题Java】从入门到入职-真题列表导读

    写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...

最新文章

  1. Oracle用户被锁定解决方法
  2. 从windows server的文件服务到分布式文件服务(一)
  3. 802.11协议之BA/BAR帧
  4. 乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
  5. php $conf,$conf
  6. Hive 0.12.0安装配置
  7. python hist 参数_关于python中plthist参数的使用详解
  8. java POI 写入百万数据到 excel
  9. java 累进计费率计算_设计费400万,缴纳所得税100万,如何筹划
  10. 安装thymeleaf 插件_史上最详细的WordPress安装教程(四):安装mysql 5.7
  11. php输出1到10的和,php通过排列组合实现1到9数字相加都等于20的方法
  12. python类及其方法
  13. html5 Canvas画图3:1像素线条模糊问题
  14. MFC鼠标单击截获鼠标双击事件,且无法记录单击的数据的解决方案
  15. Process Kill Technology Process Protection Against In Linux
  16. 新手用手机学黑客编程一秒变黑客
  17. 【松果圆桌派】全年线下客流量超4000万,COMMUNE的场景体验式玩法是如何打造的?
  18. 关于c4d默认渲染器的玻璃材质调试
  19. 创客集结号:国内无人机技术发展的难点有哪些?
  20. 认识LTE(八):LTE中的反馈:闭环空分复用(TM4)

热门文章

  1. 2023最新健身俱乐部会员管理系统的设计与实现(毕业设计+论文+开题报告+运行)
  2. 苹果 2017 秋季产品发布会直播预告
  3. [原创] Bandwagon 追加 swap 大小
  4. php 文章分句,php 英文分句/分段落
  5. 英语四级XYZ字母开头单词+托福高频单词
  6. 【奥特曼迪迦表情包】
  7. 数据库原理——实验二《数据查询》
  8. css所有属性大合集,包含中文标题
  9. 【今日CV 计算机视觉论文速览 第99期】Fri, 12 Apr 2019
  10. 使用小米手机进行真机测试