Caesars Cipher-freecodecamp算法题目
2024-09-08 13:47:46
Caesars Cipher(凯撒密码、移位密码)
- 要求
- 思路
- 将输入字符串分割成二维数组(一维由空格分开,二维分隔单个字符)
- 在for循环遍历数组所有元素,利用.charCodeAt()判断各个元素的 UTF-16 代码单元值的数字的范围,对其.charCodeAt()进行+/- 13操作或者不进行操作
- 利用String.fromCharCode()返回加密后的数组,最后用.join()将数组元素拼接成加密后的字符串
- 代码
function rot13(str) { // LBH QVQ VG!
// 请把你的代码写在这里
var temp = str;
temp = temp.split(' ');
for (var i = 0;i < temp.length;i++){
temp[i] = temp[i].split('');
}
var code = temp;
for (var j =0;j < temp.length;j++){
for (var k = 0;k < temp[j].length;k++){
if(temp[j][k].charCodeAt() <= 77 && temp[j][k].charCodeAt() >= 65){
code[j][k] = temp[j][k].charCodeAt() + 13;
}
else if (temp[j][k].charCodeAt() > 77 && temp[j][k].charCodeAt() < 91)
{code[j][k] = temp[j][k].charCodeAt() - 13;
}
else {code[j][k] = temp[j][k].charCodeAt();}
code[j][k] = String.fromCharCode(code[j][k]);
}
}
for (var l = 0;l < code.length;l++){
code[l] = code[l].join('');
}
code = code.join(' ');
return code;
} rot13("SERR PBQR PNZC"); // 你可以修改这一行来测试你的代码
- 相关链接
- http://www.baike.com/wiki/ROT13&prd=so_1_doc
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode
最新文章
- vijos1910解方程
- mysql配置文件my.cnf详解
- C++ TrieTree(字典树)容器的实现
- .net 下的MVCPager
- Mvc设计模型与三层架构
- Java语言基础(六)char成员变量默认初始值 最简单的Java源文件 Java的main()方法
- 读书笔记之 - javascript 设计模式 - 代理模式
- AQS详解
- 轻量级C语言实现的minixml解析库入门教程
- c++:类中的static成员
- Design Pattern Memo 备忘录设计模式
- 信息存储——当值X是2的非负整数n次幂时,如何表示成十六进制
- F# 之旅(上)
- 51nod_1714:B君的游戏(博弈 sg打表)
- CSS3盒子模型
- 小程序 movable-view 在页面中的可移动图标
- Java环境变量PATH和CLASSPATH
- Linux sed使用方法
- IPv6技术详解:基本概念、应用现状、技术实践(下篇)
- Caffe 使用记录(一)mnist手写数字识别