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

2.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
56533eb9ac21ba0edf2244e2 Caesars Cipher 5 16003 caesars-cipher

--description--

واحدة من الشفرات ciphers الابسط و الاكثر شهرة هي Caesar cipher، وتعرف أيضا بأسم shift cipher. في عملية تشفير shift cipher، يتم تبديل معاني الحروف بمقدار معين.

من الاستخدامات الحديثة الشائعة تشفير ROT13 ، حيث يتم تبديل قيم الحروف بمقدار 13 مكانًا. وهكذا A ↔ N، B ↔ O وما إلى ذلك.

اكتب وظيفة (function) تأخذ مقطع نصي (string) مشفر من نوع ROT13 كمدخل وتنتج مقطع نصي غير مشفر.

جميع الحروف ستكون كبيرة (uppercase). لا تغير أي حرف غير أبجدي (مثل المسافات وعلامات الترقيم)، ولكن مررها.

--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
}