题解 | #字符串加解密#

字符串加解密

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

发现好多都没有Node的题解

不难,用正则表达式暴力解出

// 英文字母   后一个字母替换,字母变换大小写
// 字母a时则替换为B,字母Z时则替换为a;

// 当内容是数字时则把该数字加1
// 如0替换1,1替换2,9替换0;

// 解密方法为加密的逆过程。

const readline = require("readline");
let lines = [];

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
rl.on("line", function (line) {
  lines.push(line);
  if (lines.length == 2) {
    let encode = lines[0].split("");
    let decode = lines[1].split("");
     let encodeOut = ""
     let decodeOut = ""
    // 对于单个的letter来说
    encode.forEach((value,idx)=>{
        encodeOut = encodeOut + encoder(value)
    })
      decode.forEach((value,idx)=>{
        decodeOut = decodeOut + decoder(value)
    })
     console.log(encodeOut)
      console.log(decodeOut)
  }
});

function encoder(letter) {
  if (/[a-z]/.test(letter)) {
    // 小写英文字母时
    if (letter == "z") {
      return "A";
    } else {
      let unicode = letter.charCodeAt();
      unicode = unicode + 1;

      return String.fromCharCode(unicode).toUpperCase();
    }
  }else if(/[A-Z]/.test(letter)){
      if(letter == 'Z'){
          return 'a'
      } else {
          let unicode = letter.charCodeAt()
          unicode = unicode +1
          return String.fromCharCode(unicode).toLowerCase();
      }
      
  }else if(/[0-9]/.test(letter)){
      if(letter == '9'){
          return '0'
      } else {
          let output = Number(letter)+1
          return output
      }
  }
}


function decoder(letter) {
  if (/[a-z]/.test(letter)) {
    // 小写英文字母时
    if (letter == "a") {
      return "Z";
    } else {
      let unicode = letter.charCodeAt();
      unicode = unicode - 1;

      return String.fromCharCode(unicode).toUpperCase();
    }
  }else if(/[A-Z]/.test(letter)){
      if(letter == 'A'){
          return 'z'
      } else {
          let unicode = letter.charCodeAt()
          unicode = unicode -1
          return String.fromCharCode(unicode).toLowerCase();
      }
      
  }else if(/[0-9]/.test(letter)){
      if(letter == '0'){
          return '9'
      } else {
          let output = Number(letter)-1
          return output
      }
  }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务