var QUESTION_ID=75979,OVERRIDE_USER=52353;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
Jelly ,
532 byteTerima kasih kepada Dennis karena telah menghemat 2 byte. Juga terima kasih kepada FryAmTheEggman untuk menghemat 1 byte. Kode:
Penjelasan:
Menggunakan pengodean Jelly .
Cobalah online!
sumber
Python 3.5, 18 byte
Ini berfungsi karena
print
pemisah default adalah ruang tunggal.sumber
print(*input(),end=' ')
akan menjadi portabel, tapi itu tidak terlalu golf ...Hexagony ,
21131210 byteKode:
Menyimpan banyak byte berkat FryAmTheEggman . Kode:
Atau dalam bentuk yang lebih mudah dibaca:
Cobalah online!
Penjelasan:
Program Hexagony dimulai di sudut kiri atas, segera mengatur tepi memori ke nilai ASCII
P
, yaitu 80. Setelah itu, kita dapat melihat bahwa jalur berikut diambil:Kita bisa melihat bahwa jalan yang diambil adalah:
P,<;.P/0....;*/>
. Setelah ituP
, kami mengambil byte dari input pengguna. Jika ini kosong, cabang berikut (<
) akan mengarahkan kami ke Timur Laut. Jika input tidak kosong, cabang mengarahkan kami ke Tenggara. Setelah itu, kami mengeluarkan input pengguna menggunakan;
. Kami mengatur kembali tepi memoriP
, yaitu 80. Nol diikuti oleh cermin kemudian digabungkan ke nomor kami, menghasilkan 800. Ini kemudian dikeluarkan menggunakan;
perintah, tetapi pertama-tama diambil modulo 256, menghasilkan 32, yang adalah karakter spasi. Setelah itu, kami mengatur ulang tepi memori menggunakan*
perintah dan kembali untuk mengulangi sisa input pengguna. Setelah selesai dengan input pengguna, jalur diarahkan ke Timur Laut:Ini pada dasarnya pergi ke
@
perintah, yang mengakhiri program.Menggunakan Timwi 's menakjubkan HexagonyColorer untuk membuat diagram.
sumber
P,<0/*;@.>
P,<<>0;@>*
juga 10, tapi sayangnya saya tidak berpikir itu membantu dalam memotong byte lain.Haskell, 11 byte
Contoh penggunaan:
((:" ")=<<) "Code Golf"
->"C o d e G o l f "
.Peta setiap karakter
c
ke daftar dua elemen[c, space]
dan menggabungkan semuanya menjadi satu daftar.sumber
Retina , 5
Perhatikan spasi di akhir baris kedua.
$&
setara dengan$0
. Terima kasih kepada @ mbomb007 untuk tautan ini .Cobalah online.
sumber
$0
. Itu hal yang sama, tetapi lebih umum.JavaScript, 20 Bytes
Sederhana, saya hanya berharap bahwa Array.join menambahkan ruang hingga akhir sehingga saya bisa menghemat 3 byte.
sumber
[...s,``].join` `
mungkin?[...s,,].join
...join
fungsi sebagai pengembalian, seperti yang saya harapkan.` `
komentar.> <> ,
1310 byte3 byte disimpan berkat @ Sp3000
Coba di sini . Klik tautannya, lalu Kirim , lalu ketikkan beberapa input dan tekan Berikan , dan akhirnya jalankan program dengan Mulai atau Jalankan tanpa animasi .
Penjelasan
sumber
i:0(?;o 'o
untuk 10io 'o
berfungsi juga, salah.'
hanya membungkus, mendorong karakter sampai menemukan yang lain'
untuk menutupnya. Dalam hal ini pembukaan dan penutupan'
adalah char yang sama dan sebagian besar kode sumber didorong, tetapi char atas hanya akan menjadi ruang karena didorong terakhir.Java, 132 (System.in) atau 99 (argumen Program) byte
Bisakah Anda merasakan overhead malam ini?
shooqie menemukan cara 6 byte lebih pendek untuk melakukan ini, tetapi saya tidak akan mencuri pendekatan mereka. Saya sudah menggunakannya dengan versi STDIN dan lambda.
28 karakter untuk lambda tetapi itu tidak memenuhi persyaratan program.
sumber
replaceAll
.Cubix , 10 byte
Cubix adalah bahasa 2 dimensi yang dikembangkan oleh @ETHproductions di mana perintah dibungkus ke dalam kubus. Cobalah online
Ini memetakan ke sebuah kubus dengan panjang tepi 2
Mulai dengan input
i
. Aliran diarahkan^
ke utara ke atas wajah.?
Jika nilainya negatif belok kiri untuk menyelesaikan@
, nolw
melanjutkan ke kanan bergeser atau positif belok kanan lalu mencerminkan kiri\
. Keluarkan karakter dengan spasi tambahanoSo
.sumber
Cubix , 9 byte
Lihat bekerja online!
Cubix adalah bahasa di mana instruksi dipetakan ke permukaan kubus. Program ini membentuk jaring kubus berikut:
Penunjuk instruksi dimulai
i
, yang mengambil kode karakter lain dari input dan mendorongnya ke stack. Jika tidak ada lagi input yang tersisa untuk diambil,?
belokan IP kiri, di mana hits/
, dan tercermin ke atas@
, yang mengakhiri program.Namun, jika ada input yang tersisa, nilainya akan menjadi kode karakter. Karena semua 1 kode karakter positif,
?
membuat IP berbelok ke kanan, di mana ia membungkus semua jalan di sekitar kubus, meneruskano
cara yang menghasilkan char. Lalu klik/
yang membuatnya berputar kembali ke>So
, yang mendorong dan mencetak spasi. IP membawa di barat sampai membungkus kembali kei
, kembali ke awal dari loop utama.1 Jika karakternya adalah byte nol, itu akan mengabaikan
?
dan melanjutkan lurus ke depan, cukup mengeluarkan satu spasi.Tentu saja, hanya ada begitu banyak penjelasan tertulis yang bisa dilakukan, jadi saya sangat menyarankan Anda melihat ini di penerjemah online . Ada opsi "kecepatan", yang memungkinkan Anda untuk melihat eksekusi lambat atau secepat yang Anda suka.
sumber
@.Uoi?So
Stax , 2 byte
Dasi Jelly!
Cobalah di staxlang.xyz!
Semua ini dilakukan adalah mendorong
0
ke tumpukan dan zip string dari input standar dengannya, ulangi 0 seperlunya. Dalam Stax, kode titik 0 dalam sebuah string biasanya dikonversi ke 32 (spasi).Ini cukup singkat sehingga mengemasnya
ûT
tidak mengurangi apa-apa.sumber
05AB1E, 4 byte
Cobalah online.
Penjelasan
sumber
ðâJ
tidak bersaing.Sðý
CJam ,
54 byte1 byte lebih sedikit berkat @FryAmTheEggman
Cobalah online!
Penjelasan
sumber
Jawa, 92
sumber
Awk, 7 byte
(4 karakter kode + 3 opsi opsi baris perintah.)
Contoh dijalankan:
(Ada beberapa ketidaksepakatan tentang apa yang harus dimasukkan dalam jumlah opsi baris perintah. Saya menyertakan apa yang sebenarnya diteruskan ke
awk
penerjemah: "-", "F" dan pemisah antara "F" dan parameter string kosong. Lihat di bawah ini apa Maksudku.)sumber
PHP, 39 byte
Jalankan dari baris perintah
https://eval.in/541179
sumber
WhoScript 38 byte
Berfungsi paling baik ketika string diberikan pada baris perintah, tetapi itu dapat dilakukan satu karakter pada satu waktu secara real time juga.
Tidak Disatukan:
sumber
Labirin , 10 byte
Ini berakhir dengan kesalahan, tetapi pesan kesalahan pergi ke STDERR.
Cobalah online!
Penjelasan
Ini adalah salah satu kasus yang jarang terjadi di mana program linear sepenuhnya layak. Loop dicapai melalui perintah modifikasi kode sumber
<
dan>
, yang bekerja karena setelah setiap iterasi kita tahu bahwa stack kosong lagi.<
secara siklis menggeser seluruh baris satu sel ke kiri, jadi kita berakhir dengan:Ini mengambil penunjuk instruksi (IP) dengan itu sehingga IP sekarang di ujung kanan kode dan harus bergerak ke kiri. Selanjutnya,
>
lakukan modifikasi yang berlawanan sehingga menggeser kode sumber kembali keSekarang kita menjalankan iterasi tunggal (dari kanan ke kiri), sebelum semuanya dimulai:
sumber
Gema , 5 byte
Contoh dijalankan:
sumber
MATL , 7 byte
Cobalah online!
Penjelasan
sumber
APL, 5 byte
Ini membutuhkan 2 item untuk setiap karakter dalam string, dengan efek menambahkan spasi
Untuk membuatnya menjadi program yang membutuhkan stdin, jumlah byte yang sama:
Coba di sini .
sumber
brainfuck,
2422 byteContoh sederhana menggunakan 32 karakter terpendek yang diketahui untuk karakter spasi.
Cobalah online
sumber
,[.>>-[-[-<]>>+<]>-.,]
menghemat dua byte.PHP, 31 byte
mengambil input dari argumen baris perintah.
sumber
Threead ,
4516 Bytes tidak bersaing.Mengambil input melalui STDIN.
Baris / Tape pertama hanya membaca byte dari STDIN, dan menulisnya. Baris kedua, awalnya menyimpan spasi via
32c
, lalu pada saat yang sama ketika karakter berikutnya sedang dibaca, menampilkan spasi itu.Cobalah online!
sumber
Python 2,
272524 byteLebih pendek dari jawaban Raffi ...
-1 berkat 60919 (FlipTack).
sumber
lambda x:' '.join(x)+' '
1 byte lebih pendek.C, 50 byte
Sedikit
main()
rekursi :)Cobalah online! - Jika menggunakan ini di mesin Anda sendiri, gunakan Ctrl+ Duntuk menandakan EOF.
sumber
C, 56 Bytes (sebagai argumen program), 46 Bytes (dari stdin)
Jawaban C yang biasa saja. Setelah dikompilasi, program perlu dipanggil dengan string karena parameter pertama, string dengan spasi perlu dilampirkan dalam tanda kutip. Sebagai contoh di posting awal:
Yang akan ditampilkan
Solusi yang dibaca langsung dari stdin.
Satu byte lebih sedikit berkat @FryAmTheEggman
sumber
stdin
daripada menganggapnya sebagai argumen. Juga, berikut adalah halaman dengan beberapa tips berguna untuk bermain golf lebih lanjut di C: codegolf.stackexchange.com/q/2203/13877getchar()
lebih pendek. Anda juga tidak perlu menyertakan untuk sebagian besar kompiler C.R, 36 byte
Contoh:
sumber
sep=" "
, jadi ini bisa jauh lebih singkat: Coba online!Serius, 7 byte
Cobalah online!
***, ruang akhir yang dibutuhkan menambahkan 3 byte tambahan. Tanpanya,
,' j
akan bekerja untuk 4.Penjelasan:
sumber
GolfScript, 6 byte
Cobalah online!
sumber