19 / 205
LeetCode · EasyOson10 ball· ~10 daqiqa

Decode the Message

Sizga ikkita satr key va message berilgan. key bu o'ziga xos shifrlash jadvalini yaratadi. Undagi harflar tartibi alifboning 26 ta harfiga mos keladi (birinchi kelgan harf a, ikkinchisi b va hokazo, takrorlangan harflar o'tkazib yuboriladi, bo'sh joy esa jadvalga ta'sir qilmaydi). Bo'sh joylar kodi o'zgarishsiz qoladi.

Siz message ni shu key asosida topilgan jadval orqali dekodlab qaytarishingiz kerak.

example.go
func solve(key string, message string) string {
    // ...
}

Misollar

kod
Input: key = "the quick brown fox jumps over the lazy dog", message = "vkbs bs t suepuv"
Output: "this is a secret"
Tushuntirish: 't' -> 'a', 'h' -> 'b', 'e' -> 'c' va hokazo (birinchi marta paydo bo'lishiga qarab).
Shundan foydalanib xabar shifrdan yechiladi.
kod
Input: key = "eljuxhpwnyrdgtqkviszcfmabo", message = "zwx hnfx lqantp mnoeius ycgk vcnjrdb"
Output: "the five boxing wizards jump quickly"
kod
Input: key = "eljuxhpwnyrdgtqkviszcfmabo", message = "zwx hnfx"
Output: "the five"

Maslahatlar

  1. Avval key orqali har bir harfning qanday harfga mos kelishini (shifrlash jadvalini) tuzib oling, keyin message'ni shu jadval bo'yicha o'zgartiring.
  2. key'ni chapdan o'ngga aylanib, birinchi marta uchragan har bir yangi harfga navbat bilan a, b, c... mos qo'ying (26 ta katakli massivda saqlang); so'ng message'dagi har bir harfni shu massiv orqali almashtiring, bo'sh joyni o'zgarishsiz qoldiring.