题解 | #字符串加解密# JS Node一楼进行了一些小改

字符串加解密

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

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
const lines = [];

void (async function () {
    // Write your code here
    while ((line = await readline())) {
        lines.push(line);
        if (lines.length == 2) {
            console.log(encryption(lines[0]));
            console.log(decryption(lines[1]));
        }
    }
})();

function encryption(str) {
    let arr = str.split("");
    for (const i in arr) {
        if (arr[i].match(/[A-Z]/)) {
            arr[i] =
                arr[i] == "Z"
                    ? "a"
                    : String.fromCharCode(
                          arr[i].toLowerCase().charCodeAt(0) + 1
                      );
        } else if (arr[i].match(/[a-z]/)) {
            arr[i] =
                arr[i] == "z"
                    ? "A"
                    : String.fromCharCode(
                          arr[i].toUpperCase().charCodeAt(0) + 1
                      );
        } else if (arr[i].match(/[0-9]/)) {
            arr[i] = arr[i] == "9" ? "0" : (parseInt(arr[i]) + 1).toString();
        }
    }
    return arr.join("");
}

function decryption(str) {
    const arr = str.split("");
    for (const i in arr) {
        if (arr[i].match(/[A-Z]/)) {
            arr[i] =
                arr[i] == "A"
                    ? "z"
                    : String.fromCharCode(
                          arr[i].toLowerCase().charCodeAt(0) - 1
                      );
        } else if (arr[i].match(/[a-z]/)) {
            arr[i] =
                arr[i] == "a"
                    ? "Z"
                    : String.fromCharCode(
                          arr[i].toUpperCase().charCodeAt(0) - 1
                      );
        } else if (arr[i].match(/[0-9]/)) {
            arr[i] = arr[i] == "0" ? "9" : (parseInt(arr[i]) - 1).toString();
        }
    }
    return arr.join("");
}

全部评论

相关推荐

点赞 评论 收藏
分享
学java时间比较短不到三个月,基本的技术栈都过了一遍就是都不太深,有个小项目。是继续找实习还是沉淀准备秋招呢?找实习的话会花很多时间在八股,放弃的话又怕秋招简历太难看。有无大佬支招
今天java了吗:1.一定要找实习,实习不一定要去,但是找实习过程中的面试经验和心态经验才是最重要的 2.八股本来就是大头,甚至比项目重要 3.这个时间段也是面试比较多的阶段,可以抓住机会锻炼。面试才会发现自己的不足,感觉自己会了和能给面试官娓娓道来是两码事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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