题解 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let num = 0;
rl.on("line", function (line) {
const tokens = line.split(" ");
num++;
// 获取code码, 及将code码转成字符的方法
if (num === 1) console.log(fn1(line.split("")));
else if (num === 2) console.log(fn2(line.split("")));
});
// 加密
function fn1(arr) {
for (let i = 0; i < arr.length; i++) {
if ("a" <= arr[i] && arr[i] <= "z") {
arr[i] = String.fromCharCode(
arr[i].charCodeAt(0) % 122
? (arr[i].charCodeAt(0) % 122) + 1
: 97
).toLocaleUpperCase();
} else if ("A" <= arr[i] && arr[i] <= "Z") {
arr[i] = String.fromCharCode(
arr[i].charCodeAt(0) % 90 ? (arr[i].charCodeAt(0) % 90) + 1 : 65
).toLocaleLowerCase();
} else if (/[0-9]/.test(arr[i])) {
arr[i] = (Number(arr[i]) + 1) % 10;
}
}
return arr.join("");
}
// 解密
function fn2(arr) {
for (let i = 0; i < arr.length; i++) {
if ("a" <= arr[i] && arr[i] <= "z") {
arr[i] = String.fromCharCode(
arr[i].charCodeAt(0) % 123 !== 97
? (arr[i].charCodeAt(0) % 123) - 1
: 122
).toLocaleUpperCase();
} else if ("A" <= arr[i] && arr[i] <= "Z") {
arr[i] = String.fromCharCode(
arr[i].charCodeAt(0) % 91 !== 65 ? (arr[i].charCodeAt(0) % 91) - 1 : 90
).toLocaleLowerCase();
} else if (/[0-9]/.test(arr[i])) {
arr[i] = (Number(arr[i]) != 0 ? Number(arr[i]) - 1 : 9) % 10;
}
}
return arr.join("");
}
查看22道真题和解析
