Tulis beberapa kode yang bertindak sebagai program kucing. Artinya, untuk memasukkan string dan output apa adanya. Tetapi pembalikan normal kode Anda harus menampilkan pembalikan normal dari string input. Dan pembalikan visual kode Anda harus menampilkan pembalikan visual dari string input.
Pengembalian normal adalah urutan karakter terbalik dari sebuah string. Pengembalian visual adalah pengembalian normal dengan karakter ()[]{}<>
digantikan oleh )(][}{><
masing-masing.
Anda dapat menggunakan codepage apa pun yang memiliki karakter ()[]{}<>
dan diterbitkan sebelum tantangan ini untuk menentukan karakter. Anda harus menggunakan codepage yang sama untuk semua kode Anda. Kode asli Anda harus valid dalam codepage ini, dan menerapkan salah satu dari kode Anda yang dibalik itu harus menghasilkan sendiri.
Ini adalah kode-golf , kode terpendek dalam byte yang menang.
Contoh
Untuk string AB(XY)
, pembalikan normal dan visualnya masing )YX(BA
- (YX)BA
masing.
Jika kode Anda (dalam bahasa hipotetis) adalah AB(XY)
, maka kode )YX(BA
dan (YX)BA
harus menghasilkan pembalikan normal dan visual dari masing-masing string input. Dan AB(XY)
harus bertindak sebagai program kucing.
sumber
Jawaban:
05AB1E , 16 byte
Menggunakan fakta bahwa 05AB1E memiliki konstanta yang telah ditentukan sebelumnya
"()<>[]{}"
dan tidak memengaruhi pengembalian visual.Kode:
Penjelasan:
Cobalah online!
Terbalik:
Penjelasan:
Cobalah online!
Terbalik secara visual:
Penjelasan:
Cobalah online!
Menggunakan pengodean CP-1252 .
sumber
CJam, 21 byte
Uji di sini.
Pengembalian normal:
Uji di sini.
Pengembalian visual:
Uji di sini.
Penjelasan
Pertama, kode normal:
Ini sederhana:
q
membaca semua input,e#
mengomentari sisa program, dan input dicetak secara implisit di akhir.Sekarang pengembalian normal:
Dan akhirnya, pengembalian visual:
sumber
Haskell, 124 byte
Meneruskan:
Pembalikan normal:
Pembalikan visual:
Setiap versi mendefinisikan fungsi
f
yang mengambil dan mengembalikan string. Dalam mode majuf
adalah fungsi identitasid
, sisa kode adalah komentar. Dalam mode reverse normal, guard1<2
inf
adalahTrue
, demikianreverse
diterapkan. Dalam mode visual mundur,<
saklar diaktifkan>
dan pelindungnya adalahFalse
. Penjaga kedua hanyalah sebaliknya danTrue
dalam mode visual, jadi tambahanq
diterapkan yang beralih "() <> {} []".Selain
<
dan>
di penjaga, kode saya tidak menggunakan tanda kurung, jadi mereka tidak dapat dikacaukan.sumber
Bash + utilitas linux umum, 51
Pengembalian normal:
Pengembalian visual:
Trik utama di sini adalah bahwa string
()[]{}<>
dikodekan sebagai 691E97CA5D607DB5 (basis 15).dc
Perintah yang dihasilkan akan menghasilkan hasil yang sama setelah kedua jenis pengembalian. Namun'()[]{}<>'
string literal peka terhadap tipe pembalikan.tac
diperlukan untuk membalik urutan baris input danrev
diperlukan untuk membalik karakter setiap baris. Setiap input ASCII harus dapat diterima.sumber
MATL,
26242216 byteMeneruskan
Cobalah secara Online!
Penjelasan:
Pengembalian normal:
Cobalah secara Online!
Penjelasan:
Pengembalian visual:
Cobalah secara Online!
Penjelasan:
sumber
()[]{}<>
digantikan oleh)(][}{><
masing-masing.GolfScript,
3228 byteCobalah online!
Pengembalian normal:
Cobalah online!
Pengembalian visual:
Cobalah online!
Fakta bahwa program yang tidak tertandingi
}
mengakhiri program dalam GolfScript, membuatnya cukup sederhana. Namun, saya cukup yakin bahwa kode saya untuk bertukar kurung belum optimal.sumber
Python 2.7, 208 byte
Meneruskan
Pengembalian normal
https://eval.in/574639
Pengembalian visual
https://eval.in/574638
Semua arah membaca dari stdin hingga EOF.
Tidak ada yang super pintar di sini. Membuntuti komentar untuk hanya mengeksekusi kode forward vs code backward, lalu
exec
pernyataan di blok percobaan untuk menangkap kesalahan sintaks untuk dua pembalikan yang berbeda.sumber