بکندباز

در رمزنگاری آینه‌ای، کدگذاری با جایگزینی هر کاراکتر پیام با کاراکتر آینه‌ای آن در کلید انجام می‌شود.

یک تابع بنویسید که دو پارامتر دریافت کند؛ یک پیام و یک کلید اختیاری، و پیام کدگذاری شده را برگرداند.

قوانین رمزنگاری:

  1. کاراکترهای پیام را با کاراکتر آینه‌ای آن‌ها در کلید جایگزین کنید.

مثال:

message = "Mubashir Hassan"
key = "edabitisamazing"
mirror_cipher(message, key) ➞ "tuzishar hissid"

مرحله اول: همه کاراکترهای پیام را با کاراکتر آینه‌ای آن‌ها در کلید جایگزین کنید.

  • M با t جایگزین می‌شود. (در key حروف “t” و “m” آینه یکدیگر هستند؛ شش کاراکتر از سمت چپ کلید حرف t و شش کاراکتر از سمت راست کلید حرف m است)
  • u همان u باقی می‌ماند. (چون در کلید نیست)
  • b با z جایگزین می‌شود. (z کاراکتر آینه‌ای b است)
  • a با i جایگزین می‌شود و به همین ترتیب…

مرحله دوم: پیام کدگذاری شده را به صورت حروف کوچک برگردانید:

"tuzishar hissid"

اگر کلید اختیاری ارائه نشود، کل الفبا به‌عنوان کلید در نظر گرفته شود (یعنی، key = "abcdefghijklmnopqrstuvwxyz").

نمونه ورودی و خروجی

MirrorCipher("Mubashir Hassan", "edabitisamazing") ➞ "tuzishar hissid"

MirrorCipher("Matt MacPherson") ➞ "nzgg nzxksvihlm"

MirrorCipher("Airforce is best", "pilot") ➞ "aorfirce os besp"

نکات:

  • به بزرگ یا کوچک بودن حروف پیام و کلید توجه نکنید.
Assert.Equal("tuzishar hissid", Backendbaz.MirrorCipher("Mubashir Hassan", "edabitisamazing"));
Assert.Equal("nzgg nzxksvihlm", Backendbaz.MirrorCipher("Matt MacPherson"));
Assert.Equal("aorfirce os besp", Backendbaz.MirrorCipher("Airforce is best", "pilot"));

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

تمرینات مرتبط