Files
2022-12-12 20:56:32 +05:30

2.9 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
56533eb9ac21ba0edf2244e2 Шифр Цезаря 5 16003 caesars-cipher

--description--

Одним з найпростіших і найпоширеніших шифрів є шифр Цезаря, також відомий як шифр зсуву. У шифрі зсуву значення літери зміщене на встановлену кількість.

Часто використовують шифр ROT13, який зміщує літеру на 13 місць. Таким чином, A ↔ N, B ↔ O і так далі.

Напишіть функцію, яка приймає закодований рядок ROT13 як вхідні дані та повертає декодований.

Всі літери повинні бути великими. Не замінюйте неалфавітні символи (пробіли, знаки пунктуації), але перенесіть їх.

--hints--

rot13("SERR PBQR PNZC") повинен розшифруватись як рядок FREE CODE CAMP

assert(rot13('SERR PBQR PNZC') === 'FREE CODE CAMP');

rot13("SERR CVMMN!") повинен розшифруватись як рядок FREE PIZZA!

assert(rot13('SERR CVMMN!') === 'FREE PIZZA!');

rot13("SERR YBIR?") повинен розшифруватись як рядок FREE LOVE?

assert(rot13('SERR YBIR?') === 'FREE LOVE?');

rot13("GUR DHVPX OEBJA SBK WHZCF BIRE GUR YNML QBT.") повинен розшифруватись як рядок THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.

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
}