美文网首页
#268 Caesars Cipher

#268 Caesars Cipher

作者: Kaier5 | 来源:发表于2017-02-13 15:29 被阅读0次
字母 UNIcode编码
A 65
M 77
N 78
Z 90
unicode编码范围 对应字符 处理
64<X<78 A-M + 13
78<=X<=90 N-Z -13
X<=64 A-Z以外 不变
90<X A-Z以外 不变

解题思路:

  1. 将str内小写字母更换为大写(此题条件均无小写)
  2. 由上列表可得出,Unicode在何区间需要做出调整,是+13,还是-13,还是不变?
  3. String.charCodeAt() 将字符变换为Unicode;
  4. String.fromCharCode(num) 将unicode还原为字符
  5. 建立for循环
  6. Arr.join("") 将数组集合为字符串;
答案:
function rot13(str) { // LBH QVQ VG!
  arr = str.toUpperCase().split(""); // to upper case of str,and split str to a array - arr;
  var Arr =[];
  var newstr = "";
  var num=0;

  
  for(var i=0;i<str.length;i++){
    num = arr[i].charCodeAt();
    if(64<num && num<78){            
      num +=13;
    }else if(78<=num && num<=90){
      num -=13;
    }else{      
    }
    Arr.push(String.fromCharCode(num));
  }
  
  return Arr.join("");
  
  
}

// Change the inputs below to test
rot13("GUR DHV9X oEBJA QBT WHZCRQ BIRE GUR YNML SBK.");
// 
// A-M 65-77
// N-Z 78-90
// ****  65_77  78-90 ****
另外一种解答:
function rot13(str) { // LBH QVQ VG!
  var arr=str.toUpperCase().split("");
  var Arr=[];
  
  for(var i=0;i<arr.length;i++){
    var num=arr[i].charCodeAt();
    if(64<num && num<78){
      Arr.push(String.fromCharCode(num +13));
    }else if(78<=num && num<=90){
      Arr.push(String.fromCharCode(num -13));
    }else{
      Arr.push(String.fromCharCode(num));
    }
  }
  return Arr.join("");
  
}

// Change the inputs below to test
rot13("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.");

相关文章

  • #268 Caesars Cipher

    解题思路: 将str内小写字母更换为大写(此题条件均无小写) 由上列表可得出,Unicode在何区间需要做出调整,...

  • Caesars Cipher(凯撒密码)

    凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密...

  • Caesars Cipher(凯撒密码)

    Caesar cipher,又叫移位密码。 移位密码也就是密码中的字母会按照指定的数量来做移位。 一个常见的案例就...

  • FCC 题目 Caesars Cipher

    要求 让上帝的归上帝,凯撒的归凯撒。 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码。 ...

  • Design & Coed 13:凯撒密码

    凯撒密码 Caesars Cipher 凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密...

  • FreeCodeCamp筆記之:Caesars Cipher 凱

    題目: 凯撒密码(让上帝的归上帝,凯撒的归凯撒)下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移...

  • FCC-JS-BAS-Caesars Cipher-凯撒密码

    凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密...

  • Android RSA与Java RSA加密不同标准产生问题的解

    cipher= Cipher.getInstance("RSA");cipher.init(Cipher.ENCR...

  • RSA非对称加密遇见的坑

    在创建chiper实例时不能使用cipher= Cipher.getInstance("RSA");cipher....

  • DES

    You should Know First 1.Symmetric cipher Symmetric cipher...

网友评论

      本文标题:#268 Caesars Cipher

      本文链接:https://www.haomeiwen.com/subject/enczittx.html