İki dize verildiğinde, ikisi arasında çeviri tablosunu ( ikame şifresi ) bulun , eğer çeviri mümkün değilse false çıktısını alın. Cevap en aza indirilmeli ve soldan sağa doğru oluşturulmalıdır. Sözcükler arasında çevrilecek ilk karakter, çeviri tablosundaki ilk karakter olmalıdır. Buna ek olarak, çevrilmemiş herhangi bir harf (başlangıçtaki ile aynı yerde), çeviri tablosunda OLMAMALIDIR.
Muhtemelen en kolay şekilde örneklerle tanımlanmıştır:
Geçerli Vakalar
"bat", "sap" => ["bt","sp"]
Siparişe dikkat edin, çıktısı ["tb","ps"]
bu zorluk için geçerli değildir.
"sense", "12n12" => ["se","12"]
Bire n
bir ilişki olduğu için nasıl çevrilmediğine dikkat edin .
"rabid", "snail" => ["rabd","snal"]
Bire i
bir ilişki olduğu için nasıl çevrilmediğine dikkat edin .
"ass", "all" => ["s","l"]
Bir o, aynı kalır, dahil değildir s
eşleme yapabilirsiniz l
desen maçı nedeniyle.
"3121212", "ABLBLBL" => ["312","ABL"]
Mükemmel desen eşleşir.
Falsy Kılıfları
"banana", "angular" => false
(aynı uzunlukta değil, imkansız).
"animal", "snails" => false
(her karakter yalnızca çevirinin her iki tarafında da kullanılabilir).
"can","cnn" => false
(n dolaylı olarak çeviride kullanılır, bu nedenle n-> a ile bir çeviri tablosu tanımlamak geçersiz olacaktır)
Nitekim, [aimal,sails]
geçersiz bir cevap, bu falsy yapma.
"a1", "22" => false
Bkz. "Uyarılar", bu falsy olarak listelenir. Çünkü bu durumda, bu kadar a
ve 1
her ikisine de eşleyemezsiniz 2
. (Her karakter yalnızca çevirinin her iki tarafında YALNIZCA kullanılabilir).
Bu cevap iyi bir ölçüt gibi görünüyor: /codegolf//a/116807/59376
Listelenmemiş iki kelime çiftinin işlevselliği hakkında sorularınız varsa, bu uygulamaya erteleyin.
G / Ç kuralları
- Giriş, 2 elemanlı bir dizi veya 2 ayrı giriş olarak olabilir.
- Çıktı, gösterdiğim gibi, bir dizi veya satırsonu / boşluk olarak sınırlandırılmış olabilir.
- Yanlış çıktı 0, -1 veya yanlış olabilir. Hata / Boş çıktı da gayet iyi.
- Bunu garanti
a
eşit olmazb
ve nea
deb
boş olacaktır. a
veb
sadece yazdırılabilir ASCII harf dizileri.
Uyarılar
- Tercümeler soldan sağa yapılmalıdır, bakınız örnek 1.
- Aynı kalan karakterlerin çıktısını almamalısınız.
- Programınız sadece iki dizeleri alabilir
a
veb
. - Her karakter çevirinin sadece iki tarafında kullanılabilir. Bu çeviriye kılan
snails
etmekanimals
imkansız. - Yinelemeli değiştirmeler yapılmamalıdır. Özyinelemeli değiştirme örneği:
"a1","22"->[a1,12]
burada a ilk olarak 1 ile değiştirilir, ardından her iki sonuç 1 de 2 ile değiştirilir. Bu doğru değil, tüm çevirilerin birbirinden bağımsız olarak gerçekleştiğini varsayalım, yani bu yanlıştır. Anlamı: [a1,12] 'nin çeviri tablosuyla "a1" 12 olarak değerlendirilir (22 değil)