W3Cschool初级脚本算法(17.数组中任意多个值算法挑战)

ROT13解密算法
本文介绍了ROT13解密算法的实现,该算法是一种简单的凯撒密码变体,通过将字母表中的每个字母向前移动13个位置来进行加密和解密。文章提供了一个JavaScript函数示例,用于将加密字符串转换回原始文本。

数组中任意多个值算法挑战


问题:

下面我们来介绍著名的凯撒密码Caesar cipher,又叫移位密码。

移位密码也就是密码中的字母会按照指定的数量来做移位。

一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔'O',以此类推。

写一个ROT13函数,实现输入加密字符串,输出解密字符串。

所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,就跳过它们。


要求:

rot13("SERR PBQR PNZC") 应该解码为 "FREE CODE CAMP"

rot13("SERR CVMMN!") 应该解码为 "FREE PIZZA!"

rot13("SERR YBIR?") 应该解码为 "FREE LOVE?"

rot13("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.") 应该解码为 "THE QUICK BROWN DOG JUMPED OVER THE LAZY FOX."


问题答案:

function rot13(str) { // LBH QVQ VG!

var  str1 = []; 
  for (var i = 0; i < str.length; i++ ) {
    var num = str[i].charCodeAt();
  if (num >= 65 && num <= 77)
      num = num + 13;
  else if (num > 77 && num < 91)
      num = num - 13;
   str1.push(String.fromCharCode(num));
    }
  return str1.join("");
}

// Change the inputs below to test
rot13("SERR PBQR PNZC");

题目链接:

https://www.w3cschool.cn/codecamp/caesars-cipher.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值