pengantar
Enigma adalah salah satu mesin sandi rotor elektro-mekanis pertama yang digunakan dalam Perang Dunia II. Itu berarti bahwa setelah satu huruf dikodekan, itu akan mengubah kunci untuk huruf berikutnya. Ini dianggap tidak bisa dipecahkan oleh Jerman, karena ruang utama yang sangat besar. Bahkan pemaksaan kasar hampir tidak mungkin. Namun, ada kesalahan desain dalam Enigma. Mengenkripsi surat tidak akan pernah menghasilkan sendiri. Itu berarti bahwa surat itu A
dapat mengenkripsi ke setiap huruf kecuali surat itu A
.
Mari kita ambil contoh pesan kode:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
Kata khas Jerman adalah WETTERBERICHT
, atau laporan cuaca dalam bahasa Inggris. Dengan prinsip di atas, kita dapat menentukan di mana lokasi kata itu mungkin:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Ini tidak mungkin, karena I
tidak dapat dienkripsi ke dirinya sendiri, jadi kami pindah ke 1 tempat:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Ini juga tidak mungkin, jadi kami pindah lagi ke tempat lain:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Ini lagi tidak mungkin. Bahkan, kemungkinan yang pertama kali terjadi WETTERBERICHT
adalah:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
0123456789012345678901234567890123456789012345678901234567890123
^
13
Jadi, kami mengembalikan posisi 0-diindeks dari kemungkinan pertama, yaitu 13 .
Tugas
- Diberikan pesan kode dan kata, cari indeks kemungkinan yang pertama kali muncul .
- Asumsikan bahwa hanya karakter alfabet huruf besar dasar yang akan digunakan (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
). - Jika tidak ada kemunculan yang ditemukan, Anda dapat menampilkan bilangan bulat negatif , karakter, atau tidak sama sekali (misalnya
-1
,X
). - Masukan dapat diterima sebagai argumen, pada baris baru yang terpisah, daftar atau apa pun.
- Ini adalah kode-golf , jadi pengiriman dengan jumlah byte paling sedikit menang!
Uji kasus
Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT
Output: 13
Input: ABCDEFGHIJKL, HELLO
Output: 0
Input: EEEEEEEEEEEE, HELLO
Output: -1
Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND
Output: 11
Input: HKKH, JJJJJ
Output: -1
E
tidak akan pernah menghasilkan E
. Itulah yang menjadi tantangan seluruh ini.