共计 477 个字符,预计需要花费 2 分钟才能阅读完成。
需求
恺撒密码(Caesar cipher),也被称为移位密码(shift cipher)。在移位密码中,明文中的字母通过按照一个固定数目进行偏移后被替换成新的字母。
现代最常被应用到的一个变种就是 ROT13 加密,也就是明文中的字母向后移 13 位。也就是,A ↔️ N,B ↔️ O 等等。
编写一个函数,它将把使用 ROT13 加密编码的字符串作为输入并返回解码字符串。
所有解码后的字母都必须为字母大写。请不要解码非字母的字符(例如,空格、标点符号),但需要在结果中保留它们。
代码实现
function rot13(str) {
const abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
let res = []
for (let i = 0; i < str.length; i++) {let char = str[i]
if (abc.includes(char)) {let index = abc.indexOf(char) + 13
res.push(abc[index])
} else {res.push(char)
}
}
return res.join('')
}
正文完