题解 | #简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on("line", function (line) {
fn(line);
});
const charStr = "abcdefghijklmnopqrstuvwxyz";
const charArr = charStr.split("");
const charNumMap = {};
charArr.forEach((item) => {
if ("abc".indexOf(item) > -1) {
charNumMap[item] = 2;
}
if ("def".indexOf(item) > -1) {
charNumMap[item] = 3;
}
if ("ghi".indexOf(item) > -1) {
charNumMap[item] = 4;
}
if ("jkl".indexOf(item) > -1) {
charNumMap[item] = 5;
}
if ("mno".indexOf(item) > -1) {
charNumMap[item] = 6;
}
if ("qprs".indexOf(item) > -1) {
charNumMap[item] = 7;
}
if ("tvu".indexOf(item) > -1) {
charNumMap[item] = 8;
}
if ("wxyz".indexOf(item) > -1) {
charNumMap[item] = 9;
}
});
const trans = (char: string) => {
if (/\d/.test(char)) {
return char;
}
if (/[A-Z]/.test(char)) {
let c = char.toLowerCase();
let index = charStr.indexOf(c);
if (index === 25) {
return charStr.charAt(0);
} else {
return charStr.charAt(index + 1);
}
}
if (/[a-z]/.test(char)) {
return charNumMap[char];
}
};
const fn = (line: string) => {
let result = [];
for (let i = 0; i < line.length; i++) {
result.push(trans(line.charAt(i)));
}
console.log(result.join(''));
};
查看16道真题和解析