首页 > 其他分享 >刷题-字符串大小写以及数字转换

刷题-字符串大小写以及数字转换

时间:2022-10-01 09:33:17浏览次数:54  
标签:const 数字 item -- 密码 大小写 字符串 charCode 刷题

题目描述

现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 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 \le n \le 100 \1≤n≤100

输入描述:

输入一组密码,长度不超过100个字符。

输出描述:

输出密码变换后的字符串

示例1

输入
YUANzhi1987
输出
zvbo9441987

const rl = require("readline").createInterface({ input: process.stdin });
rl.on('line',function(data){
    const result= []
    const input = data.split('')
    // 以索引代替对应的数字
    let myKey = ['0','1','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']
    input.forEach((item,index)=>{
        let charCode = item.charCodeAt()
        // 如果是小写则判断是数组中哪个
        // console.log(item+'---'+charCode)
        if(charCode>=97) {
            for(let i =0;i<myKey.length;i++) {
                if(myKey[i].includes(item)){
                    result.push(i)
                    break;
                }
            }
        }
        // 如果是数字的ascii码则不做转换
        else if(charCode>=48 && charCode<=57){
           result.push(item)
        }
        // 字母'A'对应65,'a'对应97 中间差距为32,加1则是33
        else{
            if(item==='Z'){
                result.push('a')
            }
            else{
                result.push(String.fromCharCode(charCode+33))
            }
        }
        
    })
    console.log(result.join(''))
})

标签:const,数字,item,--,密码,大小写,字符串,charCode,刷题
From: https://www.cnblogs.com/zx529/p/16746782.html

相关文章

  • java字符串输入然后语音输出
    1.将jacob.jar考到项目中进行构建路径。2.将jacob-1.17-M2-x32.dll或者jacob-1.17-M2-x64.dll,考到系统盘:\Windows\System32\下面。3.将jacob-1.17-M2-x32.dll或者jacob-......
  • 字符串+转义字符+注释
    字符串由双引号引起了来的值叫字符串#include<stdio.h>intmain(){//`由双引号引起来的值叫字符串`"asdfag";"hello";"";//空字符串return0;}intmain(){cha......
  • Java中的字符串
    Java中的字符串一、APl(注:Java的默认包是java.lang使用时不需要导包)1、APl概述:APl(ApplicationProgrammingInterface):应用程序编程接口JavaAPl:指的就是J......
  • 字符串是否为数字的检测方法分享
    转自:​​http://www.java265.com/JavaJingYan/202205/16539639463579.html​​字符串简介:    字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点......
  • oracle字符串转多行
    withtas(SELECT'Newyork;London;Paris'city_namesFROMdualUNIONALLSELECT'Sydney;Singapore'FROMdualUNIONALLselect'Californ......
  • mysql循环插入分隔符分开的字符串
    CREATEDEFINER=`root`@`localhost`PROCEDURE`test`()BEGIN DECLAREi,help_topic_idINT; SETi=10469; SEThelp_topic_id=0;WHILEi<10475DOINSERTINTO`login`.t_u......
  • pyspark rdd转json字符串
    +--------+--------------------+|objectid|$geometry|+--------+--------------------+|5|[106.366970696000...|+--------+--------------------+......
  • #yyds干货盘点# 面试必刷TOP101:把数字翻译成字符串
    1.简述:描述有一种将字母编码成数字的方式:'a'->1,'b->2',...,'z->26'。现在给一串数字,返回有多少种可能的译码结果数据范围:字符串长度满足 进阶:空间复杂度 ,时间复杂度......
  • 字符串子序列,双指针
    字符串子序列[https://www.online1987.com/字符串子序列/]#define_CRT_SECURE_NO_WARNINGS1//可省略#include<iostream>usingnamespacestd;#include<string>#incl......
  • Js获取当前日期 和 50天前日期 (字符串补全)
    1.获取当前时间// console.log(new Date().getTime());获取当前时间的毫秒数// console.log(new Date());获取当前的时间letdate=newDate();letye......