2.6 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
56533eb9ac21ba0edf2244e2 | Caesar-Verschlüsselung | 5 | 16003 | caesars-cipher |
--description--
Eine der einfachsten und bekanntesten ciphers ist die Caesar-cipher, auch bekannt als shift-cipher. Bei einer Shift Verschlüsselung werden die Bedeutungen der Buchstaben um einen bestimmten Betrag verschoben.
Eine gängige moderne Anwendung ist die ROT13 Verschlüsselung, bei der die Werte der Buchstaben um 13 Stellen verschoben werden. Also gilt A ↔ N
, B ↔ O
und so weiter.
Schreibe eine Funktion, die eine ROT13 kodierten String als Eingabe verwendet und einen dekodierten String zurückgibt.
Alle Buchstaben werden groß geschrieben. Verändere keine nicht-alphabetischen Zeichen (z. B. Leerzeichen, Satzzeichen), sondern gib sie weiter.
--hints--
rot13("SERR PBQR PNZC")
sollte zum String FREE CODE CAMP
dekodiert werden
assert(rot13('SERR PBQR PNZC') === 'FREE CODE CAMP');
rot13("SERR CVMMN!")
sollte zum String FREE PIZZA!
dekodiert werden
assert(rot13('SERR CVMMN!') === 'FREE PIZZA!');
rot13("SERR YBIR?")
sollte zum String FREE LOVE?
dekodiert werden
assert(rot13('SERR YBIR?') === 'FREE LOVE?');
rot13("GUR DHVPX OEBJA SBK WHZCF BIRE GUR YNML QBT.")
sollte zum String THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
dekodiert werden
assert(
rot13('GUR DHVPX OEBJA SBK WHZCF BIRE GUR YNML QBT.') ===
'THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.'
);
--seed--
--seed-contents--
function rot13(str) {
return str;
}
rot13("SERR PBQR PNZC");
--solutions--
var lookup = {
'A': 'N','B': 'O','C': 'P','D': 'Q',
'E': 'R','F': 'S','G': 'T','H': 'U',
'I': 'V','J': 'W','K': 'X','L': 'Y',
'M': 'Z','N': 'A','O': 'B','P': 'C',
'Q': 'D','R': 'E','S': 'F','T': 'G',
'U': 'H','V': 'I','W': 'J','X': 'K',
'Y': 'L','Z': 'M'
};
function rot13(encodedStr) {
var codeArr = encodedStr.split(""); // String to Array
var decodedArr = []; // Your Result goes here
// Only change code below this line
decodedArr = codeArr.map(function(letter) {
if(lookup.hasOwnProperty(letter)) {
letter = lookup[letter];
}
return letter;
});
// Only change code above this line
return decodedArr.join(""); // Array to String
}