var QUESTION_ID=85666,OVERRIDE_USER=4162;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;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:
Cembung, 9 byte
Metode baru! Juga, saya menyadari bahwa itu persis sama persis dengan jawaban Luis tetapi di Convex, tetapi saya datang dengan ini secara mandiri.
Cobalah online!
Penjelasan:
Solusi lama, 10 byte:
Cobalah online!
Penjelasan:
sumber
A,'[,_el^'_
Ruby, 26 byte
Karakter dapat dicetak dalam urutan apa pun? Tidak masalah jika saya melakukannya!
Cobalah online!
sumber
Perl, 20 byte
Membutuhkan
-E
tanpa biaya tambahan.Jadi, jawaban awal saya (di bawah) agak terlalu membosankan. Satu-satunya hal yang berhasil saya buat adalah di atas, itu persis sama, tetapi terlihat sedikit lebih membingungkan ... Ini persis sama persis dengan di bawah ini:
Saya suka saran @ msh210 di komentar, tapi itu agak terlalu panjang!
sumber
say grep/\w/,map chr,1..122
||say map{chr=~/\w/;$&}1..122
||say map{chr=~s/\W//r}1..122
say chr=~/\w/g for 1..255
...Cheddar,
3127 byteIni menampilkan
@"
operator dengan baikTidak menyelesaikan karena saya akhirnya harus memperbaiki
@"
operator. Bugnya adalah ia menghasilkan rentang Cheddar bukan rentang JS sehingga tidak bisa berfungsi dengan baikPenjelasan
The
@"
Operator dirancang oleh @ CᴏɴᴏʀO'Bʀɪᴇɴ, dan apa yang dilakukannya adalah menghasilkan berbagai string dari LHS ke RHS. Ketika digunakan sebagai operator unary, ia mengembalikan char pada titik kode yang diberikan (seperti pythonchr
)Tidak disatukan
sumber
brainfuck, 58 byte
Cobalah online .
Menginisialisasi rekaman ke 3 · 2 n , dan bekerja dari sana.
sumber
JavaScript (ES6), 62 byte
Mengembalikan
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
, jadi hanya 6 byte lebih pendek dari fungsi yang mengembalikan string literal. Ya, itu menyebalkan.sumber
btoa
mengembalikan output yang diperlukan.atob
._
) dan 14 untuk_=>atob("")+""
.Haskell, 38 byte
Tidak ada yang bisa dijelaskan di sini.
sumber
:
dan++
?++
mengambil dua string dan menyatukannya.:
mengambil char dan string dan menempatkan char di depan string."_"++['a'..'z']...
juga berfungsi, tetapi satu byte lebih panjang.PowerShell v3 +,
3533 byteMembangun array dinamis
1..127
, melemparkannya sebagaichar
array. Itu diumpankan ke-match
operator yang bekerja pada regex\w
, yang akan mengembalikan semua elemen yang cocok (yaitu, persis alfanumerik dan garis bawah). Kami merangkum elemen-elemen array dalam a-join
untuk mengikatnya sebagai satu string. Yang tersisa pada pipa dan output tersirat.sumber
0
...V, 27 byte
Cobalah online!
Jawaban ini mengerikan berbelit-belit. Saya akan mengirim penjelasan nanti.
Hexdump:
Penjelasan:
Dapat dibaca:
sumber
J,
302928 byteDisimpan satu byte berkat randomra!
Keluaran:
Penjelasan
Saya tidak akan memberikan penjelasan sendiri , tetapi akan memberikan hasil menengah.
sumber
Haskell, 31 byte
Ekspresi
zip "aA0_" "zZ9_"
memberikan daftar titik akhir[('a','z'),('A','Z'),('0','9'),('_','_')]
. Thedo
notasi mengambil setiap(x,y)
ke inklusif yang\(x,y)->[x..y]
dan merangkai hasil. Terima kasih kepada Anders Kaseorg untuk dua byte dengando
bukan>>=
.Bandingkan dengan alternatif:
sumber
do
notasi menghemat dua byte:do(x,y)<-zip"aA0_""zZ9_";[x..y]
C, 50 byte
Panggil
f()
tanpa argumen.Cetakan
sumber
isalnum(n)|n==95&&putchar(n)
putc
malah menggunakannyaputchar
.putc
mengharapkan aliran untuk menulis juga, yang tidak Anda lewati. Fungsi itu sendiri berfungsi dengan baik (coba hapusputc
semuanya, dan berfungsi).If the number of arguments does not equal the number of parameters, the behavior is undefined.
6.5.2.2/6, lihat N1570 ./// , 63 byte
sumber
Python 3, 58 byte
Program lengkap yang mencetak ke STDOUT.
Outputnya adalah:
_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Bagaimana itu bekerja
Cobalah di Ideone
Jika konstanta string diizinkan, berikut ini akan menjadi 45 byte:
sumber
print('_'+*filter(str.isalnum,map(chr,range(123))))
print('_',*filter(str.isalnum,map(chr,range(123))))
, tetapi itu mencetak ruang yang terpisah; OP mengatakan dalam komentar bahwa '... tidak ada spasi yang diizinkan dalam output sama sekali'.print''.join(filter(str.isalnum,map(chr,range(123)))),'_'
Upaya pertama saya di codegolf!
C #,
168152150147130127117116115109106 bytesTerima kasih banyak untuk aloisdg, AstroDan, Leaky Nun, dan Kevin Lau - bukan Kenny untuk semua bantuan dalam komentar.
sumber
\w
kelas regex mencakup alfanumerik dan juga_
, yang seharusnya"\\w"
cukup valid untuk fungsi pencocokan regex Anda.Bash murni, 32
Ideone .
sumber
Objek Pascal,
858373 bytePascal objek hanya menggunakan seperangkat karakter. Menulis program lengkap alih-alih prosedur mengurangi 2 byte. Menghapus kata kunci program mencukur 10 byte lebih banyak.
sumber
program
kata kunci yang tidak berguna .pesta -
4737 byteOutput pada sistem saya adalah:
Terima kasih kepada Digital Trauma untuk saran yang bermanfaat.
Pada beberapa sistem Anda mungkin dapat menggunakan
ascii
alih-alihman sh
menyimpan byte.sumber
man sh|egrep -io _\|\\w|sort -u|tr -d \\n
\w
kecocokan_
dan sudah case-sensitive, jadi bisa lebih pendek.env
alih-alihman sh
harus bekerja di sebagian besar lingkungan. Itu milikku.$ env|egrep -o \\w|sort -u|tr -d \\n
->0123456789ABCDEFGHIKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
.J
. Salahku.PHP, 40 byte
Demo online .
sumber
Retina ,
3019161512 byteSaya memodifikasi upaya alfabet asli saya untuk versi terbaru ini. Setiap karakter dicetak dalam satu lingkaran.
Baris pertama kosong.
Cobalah online
Keluaran:
Terima kasih kepada Leaky Nun untuk bermain golf 4 byte dari upaya terakhir saya.
sumber
w
dihitung sebagai konstanta yang berisi 9 atau lebih dari karakter yang diperlukan. Anda mungkin harus memperluas sisi kanan dan menggantiw
sisi kiri dengano
. Meskipun Anda dapat menyimpan byte dengan menggunakanEO
bukand
karena hanya berisi 5 karakter masing-masing.w
di dalam tahap transliterasi tidak ada hubungannya regex. Ini adalah singkatan yang diperluas ke daftar 63 karakter yang diperlukan. Setidaknya saya akan bertanya orlp tentang kasus ini secara khusus, karena sangat berbeda dari menggunakan\w
di regex.MATL , 11 byte
Cobalah online!
sumber
8W:'\w'XX
8W:'\w'XX!
yang saya coba tetapi tidak berhasilBrachylog , 25 byte
Ini mencetak yang berikut ini untuk
STDOUT
:Penjelasan
sumber
Pyth,
1312 byteCobalah online!
Temukan semua karakter di U + 0000 hingga U + 007B yang cocok dengan regex
/\w/
.Keluaran
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
.pendekatan alternatif: 15 byte
Cobalah online!
pada dasarnya menghasilkan rentang setengah-inclusive diperlukan:
0-:, A-[, a-{, _-`
.sumber
CJam ,
151411 byte4 byte off berkat @FryAmTheEggman dan @Dennis!
Cobalah online!
sumber
Brainfuck, 89 byte
Coba di sini
Detail:
Jika saya bisa berkomentar, saya harus meningkatkan jawaban orang lain. Tapi karena saya tidak bisa, saya mungkin memposting sendiri. Ketika saya mulai menulis ini, BF terendah adalah 96 panjang.
sumber
F #,
5059 byteKeluaran:
Sunting: melewatkan digit pertama kali
Edit2, terinspirasi oleh solusi Haskell ini, potongan F # ini adalah 67 byte.
Keluaran:
sumber
Hexagony, 33
Diperluas:
Keluaran:
Cobalah online!
Perhatikan bahwa ada karakter yang tidak patut dicetak
0x1A
sebagai byte pertama dari program. Ini juga membuat baris pertama Hexagon yang diperluas terlihat agak tidak aktif. Terima kasih banyak kepada Martin karena menunjukkan trik ini kepada saya, juga karena menyarankan algoritma untuk mencetak alfabet!Ini mencetak alfabet dengan menyimpan
a
danA
pada dua sisi segi enam dan angka 26 pada sisi segi enam yang menyentuh sambungan antara huruf. Ini terlihat seperti ini:Kemudian memasuki loop yang mencetak surat-surat dan kemudian menambahkannya, dan kemudian mengurangi jumlahnya. Setelah satu iterasi kita akan memiliki:
Dan seterusnya. Kode linear untuk inisialisasi adalah:
0x1A " A } a
. Kode linear untuk loop luar perubahan aliran kontrol adalah:; ) ' ; ) { ( ' =
.Setelah penghitung mencapai nol, kami mengikuti jalur yang berbeda untuk mencetak angka dan garis bawah. Ditulis linear ini adalah:
x 3 5 6 8 4 7 9 ! ; { @
. Ini menggantikan nilai tepi memori saat ini dengan angka 1203568479 (perhatikan bahwax
kode ASCII adalah 120), yang berisi semua angka desimal. Kami mencetak nomor ini dan kemudian kami menggunakan fitur Hexagony yang rapi: kami mencetak nomor mod 256 sebagai karakter ASCII. Ini kebetulan menjadi 95, atau garis bawah.sumber
Brainfuck,
11410398907671 byteHal
sepelelainnyaSolusi (sekarang non-sepele), tetapi kali ini adalah BF!Disimpan 14 (!) Byte berkat @primo.
Disimpan 4 byte lebih banyak berkat saran @ primo untuk menghasilkan rentang mundur, dan saya menyimpan lainnya dengan menambahkan sebelum mencetak untuk huruf kecil.
Baru (pengulangan 4, 71):
Lama (nilai, 114):
Lama (pengulangan 1, 103):
Lama (pengulangan 2, 90):
Lama (pengulangan 3, 76):
Diasumsikan sel pembungkus 8 bit dan memori pembungkus. Saya menggunakan Coba online .
Semua dicetak
_AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789
Pertama, bagian ini
menginisialisasi rekaman dengan nilai-nilai ini
Ini berfungsi karena hubungan pengulangan yang saya modelkan pada dasarnya adalah
f(x) = 7 * (3 * x + 1)
, mundur. Lihat @ primo Halo, Dunia! Menjawab untuk penjelasan tentang apa itu hubungan perulangan.Kemudian, cukup mudah untuk mengubah nilai-nilai ini menjadi yang bermanfaat. (dan cetak garis bawah)
Kemudian, loop sederhana menggunakan nilai-nilai untuk mencetak sisa karakter. Saya menghemat 1 byte dengan menambah sebelum mencetak.
Saya benar-benar perlu menemukan generasi urutan yang lebih pendek.Saya menemukan hubungan pengulangan yang tampaknya bekerja dengan baik, tetapi mungkin ada yang lebih pendek tanpa berburu dan mematuk.Saya menggunakan kalkulator regresi linier untuk menemukan apa yang seharusnya menjadi hubungan perulangan linear sesingkat mungkin, jadi saya mungkin harus menemukan beberapa formula lain jika saya ingin meningkatkan.
@ Primo benar-benar meningkatkan hubungan pengulangan, terima kasih.
sumber
+[--[<+++++++>->+<]>-]
>-]
, Anda dapat yakin bahwa istilah terakhir adalah 1 (x7) Sebenarnya, Anda mungkin harus memulainya-
, selesai jauh lebih cepat.Sesos , 17 byte
Keluaran
Cobalah online! Periksa Debug untuk melihat kode biner yang dihasilkan.
Bagaimana itu bekerja
File biner di atas telah dihasilkan dengan merakit kode SASM berikut.
sumber
Pyke, 13 byte
Coba di sini!
Menghasilkan ascii 0-150 dan memfilter menurut alfanumerik dan menambahkannya
_
sampai akhirsumber