-
Notifications
You must be signed in to change notification settings - Fork 2
/
Ceasars Cipher.js
30 lines (24 loc) · 1.05 KB
/
Ceasars Cipher.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
JavaScript Algorithms and Data Structures Projects: Caesars CipherPassed
One of the simplest and most widely known ciphers is a Caesar cipher, also known as a shift cipher. In a shift cipher the meanings of the letters are shifted by some set amount.
A common modern use is the ROT13 cipher, where the values of the letters are shifted by 13 places. Thus 'A' ↔ 'N', 'B' ↔ 'O' and so on.
Write a function which takes a ROT13 encoded string as input and returns a decoded string.
All letters will be uppercase. Do not transform any non-alphabetic character (i.e. spaces, punctuation), but do pass them on.
*/
function rot13(str) {
let codeArr = [];
for (let i = 0; i < str.length; i++) {
codeArr.push(str.charCodeAt(i));
}
let decodeArr = codeArr.map(function(code){
if (code >= 65 && code <= 77) {
return code + 13;
} else if (code >= 78 && code <= 90) {
return code - 13;
} else if (code < 65) {
return code;
}
});
return String.fromCharCode(...decodeArr);
}
rot13("SERR PBQR PNZC");