Giriş
Bilmeyenler için bir palindrom, bir dize, dizeye geri eşit olduğundadır (birleşim, boşluklar, vs. hariç). Bir palindromun bir örneği:
abcdcba
Bunu tersine çevirirseniz, sona erersiniz:
abcdcba
Aynı olan. Dolayısıyla biz buna bir palindrom diyoruz. Bir şeyleri palindromize etmek için, bir dize örneğine bakalım:
adbcb
Bu bir palindrom değil. Bunu palindromize etmek için, tersine çevrilmiş dizeyi ilk dizenin sağındaki ilk dizeye birleştirmemiz ve her iki sürümü de aynı tutmamız gerekir . Daha kısa, daha iyi.
Deneyebileceğimiz ilk şey şudur:
adbcb
bcbda
^^ ^^
Tüm karakterler eşleşmez, bu nedenle ters dizge için doğru konum bu değildir. Sağa bir adım gideriz:
adbcb
bcbda
^^^^
Bu aynı zamanda tüm karakterlerle eşleşmiyor. Sağa doğru bir adım daha atıyoruz:
adbcb
bcbda
Bu sefer, tüm karakterler eşleşiyor . Biz yapabilirsiniz birleştirme hem dize zedelemeden . Nihai sonuç:
adbcbda
Bu palindromize dizedir .
Görev
Yalnızca küçük harf içeren (veya daha iyi olursa büyük harf ) bir dize verildiğinde , palindromize dizenin çıktısını alın .
Test durumları
Input Output
abcb abcba
hello hellolleh
bonobo bonobonob
radar radar
hex hexeh
Bu kod-golf , bu yüzden en az sayıda bayt olan gönderim kazanıyor!
obonobo
, test durumuna daha iyi bir çözüm olacaktır.
bono b o nob
bir cümle. Tanrı ve Bono arasındaki fark nedir? Tanrı, Dublin’de Bono gibi davranarak dolaşmıyor ;-)