Ini adalah cermin: |
. Saya baru tahu bahwa Anda dapat menempelkan cermin di tengah-tengah tali jika tali itu dapat dicerminkan pada dirinya sendiri! Misalnya, string abccba
. Jika Anda memotongnya menjadi dua bagian adalah gambar cermin satu sama lain:
abc <--> cba
Jadi, kita bisa menempelkan cermin di tengah-tengah string, dan string baru kita adalah abc|cba
. Terkadang, hanya sebagian dari string yang dapat dicerminkan dengan sendirinya. Misalnya, string "mirror". Dua r dicerminkan, tetapi sisa string tidak. Tidak apa-apa, kami hanya akan menghapus bagian-bagian dari string yang tidak saling mencerminkan, dan kami mendapatkan string berikut:
r|r
Beberapa string dapat dicerminkan di banyak tempat. Misalnya, "Hello World, xyzzyx". Saya suka memiliki banyak teks yang terpantul di cermin saya, jadi Anda perlu menemukan tempat terbaik untuk meletakkan cermin saya. Dalam hal ini, Anda harus mengeluarkan string cermin yang lebih panjang dan seperti contoh terakhir kami, hapus yang lainnya. String ini menjadi:
xyz|zyx
Beberapa string terlihat seperti mereka dapat dicerminkan, tetapi sebenarnya tidak bisa. Jika string tidak dapat dicerminkan di mana pun, Anda seharusnya tidak menghasilkan apa-apa.
Tantangan:
Diberikan string yang hanya berisi ascii yang dapat dicetak, temukan tempat terbaik untuk meletakkan cermin saya. Dengan kata lain,
Temukan substring palindromic panjang rata-rata terbesar, lalu output dengan karakter pipa '|' di tengah-tengahnya.
Panjang input akan 1-50 karakter.
Anda dapat mengasumsikan bahwa input tidak akan mengandung mirror |
atau baris baru. Selain itu, semua karakter cetak-ascii adalah permainan yang adil. Jika substring cermin terpanjang diikat di antara dua substring, Anda dapat memilih mana yang akan diproduksi. Misalnya, untuk string "abba ollo", Anda harus menampilkan "ab | ba" atau "ol | lo", tetapi tidak masalah yang mana yang Anda output. String peka huruf besar-kecil, misalnya "ABba" tidak boleh menampilkan "AB | ba", itu harus menampilkan string kosong.
Sampel IO:
"Hello World" --> "l|l"
"Programming Puzzles and Code-Golf" --> Either "m|m" or "z|z"
"abcba" --> ""
"Hulluh" --> "ul|lu"
"abcdefggfedcba" --> "abcdefg|gfedcba"
"abcdefggfabc" --> "fg|gf"
"AbbA" --> "Ab|bA"
"This input is a lot like the last one, but with more characters that don't change the output. AbbA" --> "Ab|bA"
Seperti biasa, ini adalah kode-golf, sehingga celah standar berlaku, dan jawaban terpendek dalam byte menang!