در رمزنگاری آینهای، کدگذاری با جایگزینی هر کاراکتر پیام با کاراکتر آینهای آن در کلید انجام میشود.
یک تابع بنویسید که دو پارامتر دریافت کند؛ یک پیام و یک کلید اختیاری، و پیام کدگذاری شده را برگرداند.
قوانین رمزنگاری:
- کاراکترهای پیام را با کاراکتر آینهای آنها در کلید جایگزین کنید.
مثال:
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"
نکات:
- به بزرگ یا کوچک بودن حروف پیام و کلید توجه نکنید.
EXPECT_EQ(MirrorCipher("Mubashir Hassan", "edabitisamazing"), "tuzishar hissid"); EXPECT_EQ(MirrorCipher("Matt MacPherson"), "nzgg nzxksvihlm"); EXPECT_EQ(MirrorCipher("Airforce is best", "pilot"), "aorfirce os besp");
نظرات