Tugas Anda adalah menulis sebuah program yang menghasilkan string yang tepatProgramming Puzzles
(mengikuti baris baru opsional), tetapi ketika semua spasi, tab, dan baris baru dihapus outputnya Code Golf
(mengikuti baris baru opsional.)
Hitungan byte Anda adalah hitungan program pertama, dengan spasi masih ada.
Catatan
Ruang di
Code Golf
danProgramming Puzzles
akan dihapus sebagai bagian dari penghapusan, jadi rencanakan dengan sesuai.Dalam penyandian di mana 0x09, 0x0A dan 0x20 tidak masing-masing tab, baris baru atau spasi, karakter tersebut akan dihapus.
Jika kode Anda
42 $@ rw$ @42
maka itu harus keluar
Programming Puzzles
. Juga, dalam bahasa yang sama,42$@rw$@42
harus keluar
Code Golf
.
Ini adalah kode-golf , jadi kode terpendek dalam byte menang! Semoga berhasil!
code-golf
string
source-layout
whitespace
programmer5000
sumber
sumber
Code Golf
juga akan dihapus, bagaimana dengan yang ada diProgramming Puzzles
.Jawaban:
Python 2 , 50 byte
Cobalah online!
Dengan semua ruang dihapus:
Coba online itu!
Terima kasih kepada Stephen S untuk 3 byte, dan Erik the Outgolfer untuk 1
sumber
" ">""
kembaliTrue
, karena, secara leksikografis, spasi lebih besar dari string kosong. Dalam kasus kedua,"">""
kembaliFalse
, karena tidak ada yang lebih besar dari dirinya sendiri.True
danFalse
sebenarnya hanya1
dan0
masing - masing, hanya dalambool
tipe data bukanint
ataulong
. Dalam kasus pertama, spasi disimpan, jadi, item pada indeks 1,"Programming Puzzles"
dikembalikan secara verbatim. Dalam kasus kedua, spasi hilang, maka\x20
dalam item pada indeks 0"Code\x20Golf"
untuk mempertahankan spasi.Python 2 ,
4847 byte-1 byte terima kasih kepada Erik the Outgolfer
Cobalah online!
Cobalah online!
sumber
05AB1E , 15 byte
Cobalah online!
Penjelasan
sumber
C,
64625352 byteCobalah secara Online!
Menggunakan fakta bahwa string C diakhiri dengan karakter nol
sumber
CJam , 38 byte
Cobalah online! atau dengan spasi dihapus
Penjelasan
Apakah spasi dalam program atau tidak menentukan apakah string pertama benar atau salah.
sumber
:(
"Bncd\x19Fnke":)
ganti kode bahagia (ganti\x19
).Jelly , 18 byte
Cobalah online!
Penjelasan
Dalam program seperti yang ditulis, baris pertama adalah fungsi pembantu yang tidak pernah dijalankan. Baris kedua (yang terakhir dalam program) adalah program utama, dan merupakan representasi terkompresi dari string
"Programming Puzzles"
(yang kemudian dicetak secara implisit).Jika Anda menghapus baris baru, semuanya menjadi satu program besar.
“½ċṭ6Ỵ»
adalah representasi terkompresi dari string"Code Golf"
.ḷ
mengevaluasi tetapi mengabaikan argumen tangan kanannya, meninggalkan nilai yang sama seperti sebelum berlari; dapat digunakan untuk mengevaluasi fungsi untuk efek sampingnya (sesuatu yang telah saya lakukan sebelumnya), tetapi juga dapat digunakan, seperti di sini, untuk secara efektif mengomentari kode.Menariknya, logika aktual di sini lebih pendek daripada entri 05AB1E, tetapi kode secara keseluruhan keluar lebih lama karena kompresor string kurang pandai mengompresi string-string khusus ini.
sumber
Jelly , 17 byte
Cobalah online!
Bagaimana itu bekerja
Seperti dalam jawaban Jelly lainnya,
Ñ1ɦ+£)G
dan½ċṭ6Ỵ
menyandikan string Pemrograman Teka - teki dan Kode Golf .“
memulai string literal dan memisahkan satu string membentuk yang lain, sementara»
memilih jenis literal (kompresi berbasis kamus), jadi ini menghasilkanṂ
kemudian mengambil yang minimum, menghasilkan Code Golf .Namun, dengan menambahkan spasi di antara
½ċṭ6
danỴ
, kita mendapatkan string kedua yang sama sekali berbeda, dan literal mengevaluasiKarena caird coinheringaahing lebih besar secara leksikografis dari pada Teka-teki Pemrograman ,
Ṃ
pilih string pertama sebagai gantinya.sumber
“½ċṭ6Ỵ“Ñ1ɦ +£)G»Ṁ
Javascript,
464342 Bytessumber
\x20
string pertama dengan spasi.;
?;
Kadang-kadang tidak diperlukan dalam JavaScript.\x20
dengan\40
untuk menyimpan byte :-)Bahasa Wolfram, 62 byte
Ruang dalam
[[0 1]]
adalah perkalian implisit, jadi ini setara dengan[[0]]
. Tanpa ruang,01
itu adil1
. Bagian 0 dan 1 dari ekspresi ini adalah string yang kita inginkan.Solusi lain dari validitas yang dipertanyakan (44 byte, 2 disimpan oleh Kelly Lowder):
The
\.20
akan digantikan oleh spasi segera ketika diketik ke dalam lingkungan Mathematica, sehingga tidak jelas apakah itu akan dihapus bersama dengan ruang lain ...sumber
\:0020
berubah menjadi spasi, dan dengan demikian akan dihapus, jadi saya tidak yakin ini memenuhi syarat. Juga\.20
lebih pendek. Oleh dua karakter."Programming Puzzles"["Code"<>FromCharacterCode@32<>"Golf"][[01]]
akan bekerja.\.20
sarannya - bagaimana Anda menemukan itu? Saya pikir saya telah menjelajahi seluruh dokumentasi ...)\.20
dengan membuat kesalahan ketik. Tampaknya hanya berfungsi untuk kode karakter dua digit. Saya tidak berpikir itu ada dalam dokumentasi.Excel - 56 Bytes
Sangat mirip dengan sebagian besar jawaban lain ... tidak ada yang mewah di sini.
sumber
Haskell, 48 byte
Menentukan fungsi
f
yang mengembalikan string yang sesuai.Untuk referensi, versi yang lama adalah:
Haskell, 49/47 byte
dengan spasi dihapus
Dua kecocokan pola sederhana.
(_)
cocok dengan semua pola. Anda dapat meningkatkan versi tanpa spasi satu byte dengan mendefinisikan pola kedua sebagaif" "=
/f""=
, tetapi ini memberikan peringatan "Pencocokan pola berlebihan".Solusi alternatif dengan jumlah byte yang sama:
sumber
Ohm ,
3332 byteMenggunakan pengodean CP437.
Cobalah online! atau coba tanpa spasi
Penjelasan
Dengan spasi putih:
Tanpa spasi putih:
sumber
Code Golf
semakin lama ketika dikompresi. Saya kira itu karena ibukota? Apa pun itu masih lebih pendek daripada menulis secara normal karena saya tidak dapat menggunakan ruang literal di sini.Japt , 29 byte
Dengan spasi:
Cobalah online!
Tanpa spasi:
Cobalah online!
Ini mengambil keuntungan dari fakta bahwa di Japt, ruang menutup pemanggilan metode. Dengan spasi, kode ini kira-kira setara dengan kode JavaScript ini:
Ini dievaluasi sebagai JavaScript, dan hasilnya dikirim ke STDOUT. Karena ungkapan terakhir adalah
"Programming Puzzles"
, string itu dicetak.Tanpa spasi, kode ini kira-kira setara dengan:
(Jika Anda belum mengetahuinya sekarang,
S
variabelnya adalah ruang tunggal.).r()
Metode pada string, jika diberi satu argumen, menghapus semua instance argumen itu dari string. Karena"Code Golf"
tidak mengandung"ProgrammingPuzzles"
, ia mengembalikan"Code Golf"
tidak berubah, yang kemudian dikirim ke STDOUT.sumber
Brachylog , 44 byte
Cobalah online!
Penjelasan
sumber
kedua sisi untuk memperbaiki :)Alice , 44 byte
Cobalah online!
Tanpa spasi putih:
Cobalah online!
Penjelasan
Dalam program pertama, kedua mirror
/
mengarahkan redirect pointer instruksi ke baris kedua."selzzuP gnimmargorP"
mendorong titik kode yang diperlukan dalam urutan yang terhormat,d
mendorong kedalaman tumpukan dan&o
mencetak banyak byte.@
mengakhiri program.Tanpa spasi, program ini semua berada pada satu baris. Dalam hal ini, penunjuk instruksi tidak dapat bergerak dalam mode Ordinal, sehingga
/
secara efektif menjadi no-ops (secara teknis, IP tidak bergerak untuk satu langkah, sama/
dieksekusi lagi, dan IP mencerminkan kembali ke mode Cardinal ). Jadi jika kita menjatuhkan yang dari program, sepertinya ini:Untuk memasukkan spasi di dalam
Code Golf
, kami menggunakan tanda seru dan mengurangi dengant
. Setelah kita mendapatkan semua poin kode pada stack,#
lewati perintah berikutnya, yang merupakan keseluruhan string kedua.d&o
lalu cetak tumpukan lagi, dan@
tutup program.sumber
PHP, 44 Bytes
operator ternary
PHP, 51 Bytes
komentar
PHP, 57 Bytes
saklar array
sumber
Pyth, 37 byte
Coba di sini.
Coba di sini.
sumber
C #
88817063 byteDengan spasi dilucuti:
Terima kasih kepada BrianJ karena telah menunjukkan kepada saya bagaimana tidak memiliki ruang antara tipe metode pengembalian dan nama metode, PeterTaylor untuk menyimpan
718 byte, dan Patrick Huizinga untuk menghemat 7 byte.Metode yang sama seperti orang lain benar-benar,
secara teknis ini bisa dianggap tidak sah karena metode ini tidak menentukan jenis kembali untuk metode, tapi ada memiliki menjadi spasi antara jenis kembali dan nama metode.sumber
@
, jadi Anda memilikivoid@a...
dan menghindari kesalahan kompilasi "no return type" (juga menambahkan byte, meskipun :().Length<1
menghemat satu byte;\u0020
menghemat enam jika saya sudah menghitung dengan benar; dan Anda dapat membuat jawaban yang valid (dan menyimpan beberapa byte pada saat yang sama) dengan mengirimkan lambda alih-alih fungsi tingkat atas.Func<string>a=()=>...
@
terutama digunakan jika Anda perlu menggunakan kata yang dipesan sebagai nama variabel (yang setara dengan[]
di dalam VB.NET (dan MS SQL Server)).=>
bukanreturn
Anda tidak perlu spasi. (Dan bahkan jika Anda menggunakanreturn
, Anda bisareturn(...)
).Common Lisp (SBCL), 52 byte
Cetakan
Programming Puzzles
Cetakan
Code Golf
Tidak Terkumpul:
Penjelasan:
Caranya pada dasarnya berasal dari cara
#'format
kerjanya di Common Lisp.Dalam CL, sebagian besar spasi putih dapat dihilangkan asalkan tidak ada ambiguitas tentang di mana token mulai atau berakhir. Trik pertama adalah memisahkan simbol
format
dant
. Saya harus mengakhiriformat
simbol itu tanpa mengubah carat
menafsirkannya. Untungnya, `di CL mengakhiri token sebelumnya sebelum diproses, dan,
membatalkan efek` (`digunakan untuk mengimplementasikan templating, di mana ekspresi selanjutnya yang mengikuti" dikutip ", tetapi setiap sub-ekspresi yang diawali dengan a,
dievaluasi dan hasilnya termasuk dalam templat, jadi `, hampir tidak ada op).Argumen ketiga
format
adalah string template.format
mirip dengan printf dalam C, tetapi memiliki arahan pemformatan yang lebih kuat dan gunakan ~ untuk menunjukkannya alih-alih%. ~ [dan ~] memungkinkan Anda memilih di antara beberapa opsi untuk dicetak, dengan ~; memisahkan mereka. Argumen tambahan disediakan untuk memformat- indeks numerik yang ingin Anda cetak. Untuk memastikan bahwa "" dalam Code Golf bertahan, saya menggunakan arahan tabulasi ~ T, yang digunakan untuk menyisipkan spasi putih, umumnya untuk menyelaraskan teks ke dalam kolom. ~ @ T adalah variasi yang hanya menyisipkan jumlah ruang tertentu, default ke 1.Akhirnya, ada dua argumen untuk format- 0 dan 1. Sebelum spasi putih dihapus, 0 digunakan oleh ~ [~; ~] untuk memilih "Programming Puzzles" dan argumen format tambahan (angka 1) dihapus (saya tidak yakin bagaimana standar menjatuhkan argumen format ekstra, tapi ini berfungsi pada Steel Bank Common Lisp). Setelah spasi dihapus, hanya ada satu argumen (01) yang memilih "Code Golf" sebagai gantinya.
sumber
,
dievaluasi dan disambungkan dalam" Tidak,@
perlu untuk penyambungan?,
ekspresi berikutnya dan termasuk hasil dalam templat, sementara,@
mengasumsikan ekspresi akan eval ke daftar dan menyertakan konten daftar itu dalam templat secara langsung. Secara tradisional di komunitas lisp,,@
disebut "splicing", tapi saya tidak yakin itu pilihan yang paling jelas. Saya akan mencoba untuk menulis ulang sedikit.Java 8,
745048 bytesumber
==
operator juga harus bekerja,()=>""==""?"Code\u00A0Golf":"Programming Puzzles"
\u00A0
->\040
untuk penghematan 2 byte.Japt , 32 byte
Cobalah online!
sumber
PowerShell , 56 byte
Cobalah online!
Cukup mendasar saya akan mengatakan, tapi itu menyelesaikan pekerjaan
sumber
R, 50 byte
Saya pikir ini sama dengan jawaban Javascript ini , dan pada dasarnya ide yang sama dengan yang lainnya.
sumber
> <> , 42 byte
Dengan spasi putih
Cobalah online!
Tanpa spasi
Cobalah online!
sumber
dc , 50
Cobalah online .
[ ]
mendefinisikan string -Z
mengukur panjangnya. Jika panjangnya 19 maka itu berisi ruang dan makro yang disimpan dalam register m disebut, yang mencetakProgramming Puzzles
dan berhenti. KalauCode Golf
tidak dicetak.sumber
> <> ,
4745 byteCobalah online!
Berkat randomra untuk -2 (dua
!
s pintar sehingga saya bisa menggunakan hanya satu>o<
.)Kode itu berteriak, "Belasan! Belasan! Belasan!" dan menyerupai ikan.
sumber
T-SQL,
96828167 byteCobalah online | Tanpa spasi
Versi lama (96 byte):
sumber
iif(len(' x')=2
print
. Saya menggunakan sebagai+
gantinya dan itu berhasil.Perl 5 ,
4341 byteCobalah online!
Menggunakan fakta yang
' '
benar dalam perl dan''
salah. The$"
variabel diatur untuk ruang secara default.Terima kasih kepada @NahuelFouilleul karena menghapus dua byte.
sumber
"Code$\"Golf"
lebih pendek danCode.$".Golf
jugaGolfScript , 38 byte
Cobalah online!
sumber
Befunge , 76 byte
Cobalah online!
Bukan solusi yang paling ringkas, tetapi sekali lagi menulis kode Befunge tanpa spasi cukup sulit.
Pada awalnya, ia membandingkan karakter spasi dengan 0. Jika lebih besar, ia pergi ke baris paling bawah. Jika tidak, itulah yang terjadi ketika Anda mengganti ruang dengan apa-apa, itu tetap di baris pertama.
sumber
,
lakukan?>:#,_
yang dapat menghemat banyak byte