题解 | #字符串加解密#

字符串加解密

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

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

const inputs = [];

rl.on('line', (line) => {
    inputs.push(line);
}).on('close', () => {
    const encodeStr = encode(inputs[0]);
    console.log(encodeStr);

    const decodePwd = decode(inputs[1]);
    console.log(decodePwd);
})

function encode(str) {
  let res = "";
  for (let i = 0; i < str.length; i++) {
    const temp = str[i];

    if (/\d/.test(temp)) {
      let n = temp == "9" ? 0 : parseInt(temp) + 1;
      res += n;
    } else if (/[A-Z]/.test(temp)) {
      let C = temp == "Z" ? "a" : String.fromCharCode(temp.charCodeAt() + 1);
      res += C.toLowerCase();
    } else if (/[a-z]/.test(temp)) {
      let c = temp == "z" ? "A" : String.fromCharCode(temp.charCodeAt() + 1);
      res += c.toUpperCase();
    } else {
      res += temp;
    }
  }
  return res;
}

function decode(pwd) {
  let res = '';
  for(let i = 0; i < pwd.length; i++) {
    const temp = pwd[i];
    
    if(/\d/.test(temp)) {
      let n = temp == '0' ? 9 : parseInt(temp) - 1;
      res += n;
    } else if(/[A-Z]/.test(temp)) {
      let c = temp == 'A' ? 'z' : String.fromCharCode((temp.charCodeAt() - 1));
      res += c.toLowerCase();
    } else if(/[a-z]/.test(temp)) {
      let c = temp == 'a' ? 'Z' : String.fromCodePoint((temp.charCodeAt() - 1));
      res += c.toUpperCase();
    } else {
      res += temp;
    }
  }
  return res;
}

步骤:

1、 加密encode:

  • 数字:9 -> 0, 0-8 -> i + 1
  • A-Z:Z -> A -> a,A - Y -> String.fromCharCode(i.charCodeAt() + 1) -> toLowerCase()
  • a-z: z -> a -> A, a - y -> String.fromCharCode(i.charCodeAt + 1) -> toUpperCase();
  • 其它字符: 不变

2、解密decode:

上述过程的逆过程

全部评论

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务