题解 | #字符串加解密#

字符串加解密

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:

上述过程的逆过程

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 18:54
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
我见java多妩媚:大外包
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务