题解 | #字符串加解密#

字符串加解密

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

const plain = readline().split(''); // 明文
const cypher = readline().split(''); // 密文
/**
 加密函数
*/
function encryption(p) {
  const letterReg = /[a-z]/i;
  if (letterReg.test(p)) {
    // 是字母
    const lowerA = 'a'.codePointAt();
    const upperA = 'A'.codePointAt();
    const lowerZ = 'z'.codePointAt();
    const upperZ = 'Z'.codePointAt();
    
    const pCp = p.codePointAt();
    if (pCp < lowerA) {
      // 大写字母
      if (pCp === upperZ) {
        // p 是大写'Z'
        return 'a';
      }
      // p是大写'A'~'Y'
      const next = String.fromCodePoint(pCp + 1);
      return next.toLowerCase();
    }
    if (pCp === lowerZ) {
      // p 是 小写'z'
      return 'A';
    } 
    // p 是小写'a'~'y'
    const next = String.fromCodePoint(pCp + 1);
    return next.toUpperCase();
  } else if (!Number.isNaN(Number(p))) {
    // 是数字
    const n = Number(p);
    if (n === 9) {
      return 0;
    }
    return n + 1;
  }
  return '';
}
// 解密函数
function decryption(p) {
  const letterReg = /[a-z]/i;
  if (letterReg.test(p)) {
    // 是字母
    const lowerA = 'a'.codePointAt();
    const upperA = 'A'.codePointAt();
    const lowerZ = 'z'.codePointAt();
    const upperZ = 'Z'.codePointAt();
    
    const pCp = p.codePointAt();
    if (pCp < lowerA) {
      // 大写字母
      if (pCp === upperA) {
        // p 是大写'A'
        return 'z';
      }
      // p是大写'B'~'Z'
      const next = String.fromCodePoint(pCp - 1);
      return next.toLowerCase();
    }
    if (pCp === lowerA) {
      // p 是 小写'a'
      return 'Z';
    } 
    // p 是小写'b'~'z'
    const next = String.fromCodePoint(pCp - 1);
    return next.toUpperCase();
  } else if (!Number.isNaN(Number(p))) {
    // 是数字
    const n = Number(p);
    if (n === 0) {
      return 9;
    }
    return n - 1;
  }
  return '';
}

const plainRes = plain.map(p => encryption(p));
console.log(plainRes.join(''));

const cypherRes = cypher.map(p => decryption(p));
console.log(cypherRes.join(''));

全部评论

相关推荐

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