题解 | #简单密码#

简单密码

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(''));
};

全部评论

相关推荐

在笔试的柠檬精很想去...:兄弟们,你们这个大厂,中厂,小厂怎么定义的 初来驾到,别笑话我,只要能学到本事,不管大厂小厂都可以,但是别进到黑厂就行
找实习记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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