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 ntidak diterjemahkan karena itu adalah hubungan 1 ke 1.
"rabid", "snail" => ["rabd","snal"]
Perhatikan bagaimana itidak diterjemahkan karena itu adalah hubungan 1 ke 1.
"ass", "all" => ["s","l"]
A tidak termasuk, tetap sama, sdapat memetakan lkarena 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 adan 1tidak 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
atidak akan samabdan tidakajuga tidakbakan kosong. adanbhanya 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
adanb. - Setiap karakter hanya dapat digunakan SEKALI di setiap sisi terjemahan. Inilah yang membuat terjemahan dari
snailsmenjadianimalstidak 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)