JavaScript题解 | #简单密码#

简单密码

https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac

/**
 * 1. 数字和其它符号不变 [^(a-z|A-z)]
 * 2. [a-z] => 变成对应的数字 map
 * 3、[A-Z] => 变成小写并往后移一位 ascill
 */

const rl = require('readline').createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('line', (line) => {
    const pwd = line.trim();
    const res = translator(pwd);

    console.log(res);
});

function translator(pwd) {
    let res = '';

    const aCharCode = 'a'.charCodeAt();
    const upperToLower = 'A'.charCodeAt() - aCharCode;

    for(let i = 0, len = pwd.length; i < len; i++) {
        const current = pwd[i];
        const lowerMap = {
            a: 2, b: 2, c: 2,
            d: 3, e: 3, f: 3,
            g: 4, h: 4, i: 4,
            j: 5, k: 5, l: 5,
            m: 6, n: 6, o: 6,
            p: 7, q: 7, r: 7, s: 7,
            t: 8, u: 8, v: 8,
            w: 9, x: 9, y: 9, z: 9
        }
        if(/[a-z]/.test(current)) {
            res += lowerMap[current];
        } else if(/[A-Z]/.test(current)) {
            let n;
            if(current === 'Z') {
                n = 'a'.charCodeAt();
            } else {
                n = current.charCodeAt() + 1 - upperToLower;
            }
            res += String.fromCharCode(n);
        } else {
            res += current;
        }
    }
    return res;
}

难度:⭐⭐

难点:

1、 大写字母转小写字母

大写字母加+1之后 + (大写字母与小写字母之间的间隔)= 对应小写字母的数字

2、 小写字母的查找对应的按键数字

3、给两颗星是要注意小写字母并不总是3个对应一个数字,大写字母Z往后+1并不是对应小写字母a,第三点注意到了就没问题了。

知识点:

1、JavaScript 字符对应的ASCII code 转换

'a'.charCodeAt()

2、数字转ASCII码

String.fromCharCode(num);

一上来不仔细看题,不想写字母对应数字的map,想着用什么公式对等转换一下,频频出错,实在不应该啊。自己不熟悉9键也有一定的关系。

全部评论

相关推荐

废物一个0offer:认真的吗二本本科找人工智能岗位
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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