题解 | #字符串加解密#

字符串加解密

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
      }
  }
}

全部评论

相关推荐

昨天 18:05
门头沟学院 Java
挂了 正式批求捞
投递滴滴等公司9个岗位
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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