Tugas Anda sederhana. Program membaca dalam satu baris teks dari input standar, dan mencetak teks yang sama dalam bentuk karakter-terbalik. Tidak diperbolehkan mencetak apa pun.
Sebagai contoh:
input: "Hello!", output: "! olleH"
Tangkapannya adalah , program Anda harus dapat melakukan hal yang sama persis jika kode sumber itu sendiri karakter-terbalik!
Penilaian: penilaian standar kode-golf berlaku, dengan modifikasi berikut untuk membatasi membosankan
//margorp
program//
jawaban gaya: solusi apa pun yang merupakan palindrom akan dikenakan penalti + 25% untuk skor, dibulatkan ke atas. Hukuman ini masih berlaku, jika Anda, misalnya, memasukkan karakter ke dalam program yang tidak memiliki efek yang berguna, hanya untuk memecahkan palindrom.
-1%#%1-/1
atau-1%#%(0
?Jawaban:
APL, 5
Ini membalikkan (
⌽
, sepanjang sumbu terakhir) input (⍞
), dan diikuti oleh komentar (⍝
menandai komentar garis). Terbalik, program membalikkan (⊖
, sepanjang sumbu pertama) input, dan diikuti oleh komentar. Karena input selalu akan menjadi satu dimensi, dalam hal ini⌽
dan⊖
secara fungsional setara. Ini mungkin bahkan lebih licik daripada solusi GolfScript, jadi inilah solusi yang lebih bersih (tidak ada komentar), yang mendapat skor 9 .Ini pertama-tama mengambil vektor kosong (
⍬
), meratakannya (monadik,
), dan membaliknya (⊖
, di sepanjang sumbu pertama). Ini masih menyisakan vektor kosong. Kemudian ia menyambungkan (diad,
) ke input (⍞
), membiarkan input tersebut tidak tersentuh. Ini kemudian meratakan (monadik,
) input yang sudah rata dan membalikkannya (⌽
, di sepanjang sumbu terakhir). Kemudian ia menggabungkan (diad,
) vektor kosong lainnya (⍬
) ke input yang dibalik. Ini tidak melakukan apa-apa, dan meninggalkan input terbalik. Terbalik, program ini melakukan hal yang sama, berdasarkan pada fakta bahwa⌽
dan⊖
secara fungsional setara dengan argumen satu-dimesional.Anda benar-benar tidak bisa mengatakan saya menambahkan karakter yang tidak berguna untuk memecahkan palindrom (dua fungsi terbalik berbeda dengan input dua atau lebih dimensi; Saya hanya mengambil keuntungan dari fakta mereka bertindak sama dengan satu- input dimensi)
sumber
Unix shell - 8 + 25% = 10
Jawaban sebelumnya dari
cat|tac
tidak benar-benar berfungsi,tac
membalik urutan garis, bukan urutan karakter dalam satu garis.sumber
Haskell, 53
Secara teknis bukan palindrome, tetapi, karena perintah deklarasi fungsi tidak masalah, setelah dibalik Anda memiliki program yang persis sama.
sumber
main=niam
deklarasi ke tengah, dan Anda mendapatkan palindrome.Ruby, 37
Terbalik:
sumber
Tcl, 78
Bukan palindrome.
sumber
exit
menjadi#
(# adalah parameter, bukan awal dari sebuah komentar).\#
di baris berikutnya akan mengeksekusi#
(bukan memulai dari komentar karena lolos) yang baruexit
.gs2, 2
(Ya, bahasa ini dibuat sebelum tantangan. Tidak, ini bukan lelucon atau celah. Ruang ASCII (0x20
) terbalik .)EDIT: aw, kawan, pertanyaan ini sudah sangat tua? Andai saja saya berkomitmen lebih cepat. : <Saya akan membiarkan jawaban ini hanya karena terlalu bagus untuk dilewatkan begitu saja.
sumber
Golfscript, 9 (7 * 1.25 = 8.75)
kotor, kotor, kotor, tetapi sangat pendek.
-1%
berarti "pilih setiap elemen (karakter), mundur" dan#
berarti "komentar garis". Sisanya hanya sedikit dari sihir I / O GolfScript.Ini adalah solusi "bersih" terpendek (tanpa komentar) yang saya temukan ( 14 * 1.25 = 17.5 ):
artinya: mendorong string kosong, menjatuhkannya, membalikkan input, mengkloningnya dua kali, membaginya dengan sendirinya (mengkonsumsi dua salinan dan menghasilkan array kosong), menghapus semua yang dari array kosong, menjatuhkan array emtpy, mendorong string kosong dan (secara implisit) mencetak tumpukan.
sumber
Ruby, 44
Hanya komentar di akhir program normal: P
35 karakter, + 25% = 44
sumber
Tcl, 75.25
Kali ini sebuah palindrome.
sumber
]]
dan]]
adalah karakter \ x1A.)Python 3, 42
Kredit
:-)
) dibuat oleh sayasumber
print(input()[::-1])#)]1-::[)(tupni(tnirp
Python 3 sebagai gantinya untuk memotong skor menjadi 51,25.;
ini adalah penyisipan yang tidak memiliki efek yang berguna.Rebmu : 9 ( dg hukuman) atau 13 (tanpa)
Solusi Rebmu yang membosankan adalah 9 dan dikenakan penalti palindrom. Saya akan tetap menunjukkannya "hanya karena":
Dengan menggunakan trik yang tak terbendung dari memperhatikan huruf kapital adalah kata-kata yang terpisah, dan tidak adanya huruf besar berarti kita tidak membuat kata-kata, kita menghasilkan lima kata biasa:
Yang merupakan singkatan untuk kode yang setara (juga hukum Rebmu):
Fakta bahwa vr dan nr tidak ada artinya tidak masalah, karena meskipun tidak ditugaskan untuk apa pun mereka adalah kata-kata yang valid. Jadi evaluator hanya menjalankan
return reverse a
... ia bekerja dua arah. Tapi ini analog dengan cheat yang membosankan: kode tidak dikomentari, tapi sudah mati dan tidak dieksekusi di satu jalur.Untuk sesuatu yang lebih menarik yang tidak dikenakan penalti, bagaimana dengan solusi 13 karakter ini:
Mari kita lihat bagaimana ini diproses pada jalur maju dan mundurnya, ketika diperluas. Meneruskan:
Mundur sebagai
ArvA vr: RV a
:Pada sisi negatifnya, varian mundur menimpa singkatan untuk terbalik. Tapi hei, itu bukan palindrome, dan itu hanya 13 karakter. :-)
(Catatan: Ini mengasumsikan Anda menjalankan Rebmu dalam mode / args, di mana a adalah argumen default untuk program yang diteruskan ke penerjemah pada baris perintah dan Anda menerima hasilnya. Jika membaca dari input standar sebenarnya merupakan persyaratan, hal-hal tumbuh misalnya dari 9 hingga 11 karakter untuk solusi sederhana:.
rnRVrArVRnr
Dan jika Anda harus mencetak ke output standar dari dalam program alih-alih menerima output ekspresi dari interpreter yang akan menambahkan beberapa karakter juga.)sumber
JavaScript, 62 * 1.25 = 78
Tidak terlalu kreatif, tetapi yang terbaik yang bisa saya dapatkan. (mengasumsikan bahwa input disimpan dalam variabel
i
)Saya mendapatkan ini:
63 karakter, tanpa palindrome
tapi rasanya seperti selingkuh. : PI dapat melakukan lebih banyak perubahan sepele (seperti menggunakan
i['split']
alih-alihi.split
), tetapi semua itu masih terasa curang: Psumber
(p=a=>a&&p()==`(p=${p})(i)`?i:i.split``.reverse().join``)(i)
(60 byte) melakukan hal ituPyke, 2 (+ 25%), tidak bersaing
Pyke mengambil input secara implisit dan output secara implisit.
_
adalah fungsi sebaliknya.sumber
Tcl, 99
Jika perintah yang tidak ada dipanggil,
unknown
perintah khusus dipanggil yang dapat memuat perintah. Atau melakukan hal-hal lucu lainnya.sumber
T-SQL, 86 * 1.25 = 108
Berikut ini adalah entri palindromic yang membosankan untuk SQL Server 2008 (dan yang lebih baru) hanya untuk menunjukkan bahwa itu mungkin.
@ memegang teks input, contoh string adalah "Hai". Hitungan char entri ini adalah untuk string input dua char.
sumber
Tong , ceil (1 + 0,25) = 2 byte
Ini mengambil input dan membalikkan, dan output implisit mengeluarkannya secara harfiah. TIO
sumber
Befunge-98 (PyFunge) , 17 byte
Cobalah online!
Cobalah online! (Terbalik)
sumber
QBIC , 14 + 25% = 18 byte
Mempekerjakan kode sumber palindromic. Menggunakan dua cara berbeda untuk melakukan ini membutuhkan waktu agak lama (34 byte):
Penjelasan:
sumber
Pushy , 7 byte (5 + 25%)
Cobalah online!
Ini dikenakan penalti 25% karena itu palindrom, tapi itu yang terbaik yang bisa saya lakukan. Tidak peduli ke arah mana program dijalankan, ia melakukan 3 perintah ini:
Mengganti
i
untukc
(tumpukan jelas) atau\
(komentar) memiliki efek yang sama.sumber
05AB1E , 1 + 25% = 2 byte
Cobalah online!
sumber
R , 65 byte
EDIT: Mengesampingkan penalti 25% berkat sepele, namun tidak terlihat oleh saya, diubah oleh Grimy.
Cobalah online!
Katakan halo kepada kemampuan luar biasa R untuk menangani string, bahkan ketika Anda menggunakan paket yang dirancang untuk string seperti
stringi
... barfsumber