Diberikan dua string, cari tabel terjemahan ( subtitle cipher ) di antara keduanya, jika terjemahan tidak memungkinkan, output salah. Jawabannya harus diminimalkan dan dibuat dari kiri ke kanan. Karakter pertama yang diterjemahkan antara kata-kata harus menjadi yang pertama dalam tabel terjemahan. Selain itu, huruf apa pun yang tidak diterjemahkan (di tempat yang sama dengan aslinya), TIDAK boleh ada dalam tabel terjemahan.
Mungkin paling mudah didefinisikan melalui contoh:
Kasus yang valid
"bat", "sap" => ["bt","sp"]
Perhatikan urutannya, output dari ["tb","ps"]
tidak valid untuk tantangan ini.
"sense", "12n12" => ["se","12"]
Perhatikan bagaimana n
tidak diterjemahkan karena itu adalah hubungan 1 ke 1.
"rabid", "snail" => ["rabd","snal"]
Perhatikan bagaimana i
tidak diterjemahkan karena itu adalah hubungan 1 ke 1.
"ass", "all" => ["s","l"]
A tidak termasuk, tetap sama, s
dapat memetakan l
karena kecocokan pola.
"3121212", "ABLBLBL" => ["312","ABL"]
Pola yang cocok sempurna.
Kasus Palsu
"banana", "angular" => false
(tidak sama panjang, tidak mungkin).
"animal", "snails" => false
(setiap karakter hanya dapat digunakan SEKALI di setiap sisi terjemahan).
"can","cnn" => false
(n secara implisit digunakan dalam terjemahan, oleh karena itu, mendefinisikan tabel terjemahan dengan n-> a tidak valid)
Jadi, itu [aimal,sails]
adalah jawaban yang tidak valid, membuat ini salah.
"a1", "22" => false
Lihat "peringatan", ini terdaftar sebagai kepalsuan. Dalam hal ini, itu karena a
dan 1
tidak dapat memetakan keduanya 2
. (Setiap karakter hanya dapat digunakan SEKALI di setiap sisi terjemahan).
Jawaban ini tampaknya menjadi patokan yang bagus: /codegolf//a/116807/59376
Jika Anda memiliki pertanyaan tentang fungsi dua pasangan kata yang tidak terdaftar, tunda implementasi ini.
Aturan I / O
- Input dapat berupa array elemen 2 atau sebagai 2 input terpisah.
- Output dapat berupa array atau baris baru / ruang dibatasi, mirip dengan yang saya tunjukkan.
- Output salah bisa 0, -1 atau salah. Kesalahan / output kosong juga baik-baik saja.
- Anda dijamin
a
tidak akan samab
dan tidaka
juga tidakb
akan kosong. a
danb
hanya urutan huruf yang dapat dicetak-ASCII.
Peringatan
- Terjemahan harus muncul dari kiri ke kanan, lihat contoh 1.
- Anda tidak boleh menampilkan karakter yang tetap sama.
- Program Anda hanya dapat menerima dua string
a
danb
. - Setiap karakter hanya dapat digunakan SEKALI di setiap sisi terjemahan. Inilah yang membuat terjemahan dari
snails
menjadianimals
tidak mungkin. - Penggantian rekursif tidak boleh terjadi. Contoh ganti rekursif: di
"a1","22"->[a1,12]
mana a pertama diganti dengan 1, maka kedua resultan diganti dengan 2's. Ini tidak benar, anggap semua terjemahan terjadi secara independen satu sama lain, artinya ini palsu. Artinya: "a1" dengan tabel terjemahan [a1,12] dievaluasi menjadi 12 (bukan 22)