Latar Belakang
Terinspirasi oleh saya seorang palindrome. Apakah kamu? , di mana disajikan fakta yang mengejutkan bahwa " ()()
bukan palindrome, tapi ())(
", saya bertanya pada diri sendiri apa yang ada ()()
dan jawabannya adalah sederhana: itu adalah string dengan sumbu simetri vertikal!
Tugas
Tulis program atau fungsi yang menggunakan string S (atau padanan yang sesuai dalam bahasa Anda) sebagai input, memeriksa simetri di sepanjang sumbu vertikal, dan mengembalikan nilai yang benar atau salah . Anda dapat menggunakan segala cara yang masuk akal untuk mengambil input dan memberikan output.
Simetri reflektif
Simetri reflektif di sekitar sumbu vertikal (atau simetri kiri-kanan) berarti bahwa jika Anda meletakkan cermin secara vertikal di tengah tepat string, gambar yang dipantulkan pada paruh pertama string identik dengan paruh kedua string.
Misalnya, string berikut simetris reflektif di sekitar sumbu vertikal:
()()
()()()
[A + A]
WOW ! WOW
OH-AH_wx'xw_HA-HO
(<<[[[T*T]]]>>)
(:)
)-(
())(()
qpqp
sedangkan yang berikut ini tidak:
())(
((B))
11
+-*+-
WOW ! wow
(;)
qppq
Aturan kontes
• Program atau fungsi Anda hanya akan menerima karakter ASCII yang dapat dicetak. Anda dapat memasukkan atau tidak string kosong, (yang tentu saja simetris!) Sebagai masukan hukum, yang lebih baik untuk Anda.
• Karakter ASCII yang dapat dianggap simetris sehubungan dengan sumbu vertikal adalah sebagai berikut (perhatikan ruang awal, dan perbedaan antara huruf besar dan kecil):
!"'+*-.:=AHIMOTUVWXY^_ovwx|
Karakter ASCII yang dapat dianggap "dicerminkan" dan karakter yang sesuai adalah:
()<>[]{}qpbd/\
Perhatikan bahwa, karena mereka dicerminkan, Anda dapat memiliki keduanya ()
juga )(
, /\
dan \/
, dll.
Semua karakter ASCII yang dapat dicetak lainnya harus dianggap asimetris dan tanpa karakter yang sesuai dengan cermin.
• Ini adalah tantangan kode-golf : semakin pendek program Anda, diukur dalam byte, semakin baik, dalam bahasa pemrograman apa pun.
• Pujian kepada orang-orang yang akan menghasilkan program simetris!
Catatan : pertanyaan ini bukan merupakan duplikat dari "Convenient Palindrome" , yang mengharuskan untuk memeriksa string palindrom di mana tanda kurung dibalik. Pertanyaan ini berbeda karena dua alasan:
1) itu adalah pembatasan pertanyaan lain untuk apa yang menyangkut karakter non-kurung, karena hanya karakter simetris yang dapat muncul dalam urutan terbalik.
2) Karena didasarkan pada konsep simetri, dan bukan pada konsep "palindrom nyaman", karakter cermin dapat muncul dalam kedua urutan, yaitu []
dan ][
, dan ini membuat program untuk menyelesaikannya berbeda dari program yang memecahkan masalah lainnya. .
8
dianggap "simetris"?