İ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 nbir ilişki olduğu için nasıl çevrilmediğine dikkat edin .
"rabid", "snail" => ["rabd","snal"]
Bire ibir ilişki olduğu için nasıl çevrilmediğine dikkat edin .
"ass", "all" => ["s","l"]
Bir o, aynı kalır, dahil değildir seşleme yapabilirsiniz ldesen 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 ave 1her 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
aeşit olmazbve neadebboş olacaktır. avebsadece 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
aveb. - Her karakter çevirinin sadece iki tarafında kullanılabilir. Bu çeviriye kılan
snailsetmekanimalsimkansı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)