var QUESTION_ID=64812,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/67346/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>
h p
denganp!_
lalu ganti(const.h)
dengan(!)
untuk menyimpan 6 byte.id>>=foldl(!)
.CJam,
2724 byteUji di sini.
Ini mendorong blok tanpa nama yang mengubah daftar pada tumpukan menjadi daftar baru.
Penjelasan
sumber
J,
2423 bytePemakaian:
Metodenya mirip dengan solusi Mauris .
Cobalah online di sini.
1 byte disimpan berkat Zgarb.
sumber
Mathematica,
77746662 byteDisimpan 12 byte berkat Martin Büttner.
sumber
J, 33 byte
Sedikit lebih lama dari yang saya inginkan.
sumber
Python 3.5, 83 byte
Fungsi ini mengambil daftar bilangan bulat Python. Tidak yakin ada banyak yang tersisa untuk golf, tetapi saya ingin membuatnya bersaing dengan bahasa lain setidaknya!
Dari Python 3.5, PEP 448 memungkinkan kita membongkar
s
ke0,*s
. Rilis sebelumnya membutuhkan satu byte tambahan, seperti:Kredit untuk solusi user81655 dan penjelasan untuk membantu saya menyadari bahwa saya tidak perlu menguji apakah daftar telah berhenti berubah; Saya hanya perlu mengulangi waktu yang cukup untuk memastikan semua nol pasti tertutup. (Jumlah maksimum iterasi yang dibutuhkan adalah satu kurang dari panjang daftar; ini melakukan satu iterasi lebih dari itu, karena itu membutuhkan lebih sedikit kode.)
sumber
return
ke dalam yangfor _ in s
lingkaran?Matlab, 90 byte
Bagaimana dengan beberapa konvolusi?
Contoh
sumber
Haskell,
6665 byteIni mendefinisikan fungsi yang disebut
f
.Penjelasan
Alih-alih iterasi otomat seluler, saya menghitung nilai akhir secara langsung. Definisi adalah pemahaman daftar tunggal. Nilainya
i
berkisar dari0
hinggalength x - 1
, karena kami zipx
dengan bilangan alami. Untuk setiap indeksi
, kami menghasilkan daftar daftar 2-elemenDari daftar ini, kami menghitung elemen maksimal yang koordinat keduanya bukan nol dan membawa elemen kedua
!!1
. Ini memberikan nilai bukan nol terdekat ke indeksi
, memutuskan hubungan dengan mengambil nilai lebih besar.sumber
Lua, 133 byte
Dua loop, terary bersarang ... Jika saya ingin bermain golf lebih jauh, saya harus menemukan cara lain untuk melakukannya, tetapi saya tidak melihatnya.
Penjelasan
Bagian
akan diperluas ke
yang dapat diterjemahkan dalam bersarang
if
sebagaisumber
Pyth, 17 byte
Mengambil daftar gaya-Python dari stdin, output ke stdout.
Penjelasan
Ini pada dasarnya adalah terjemahan dari jawaban Haskell saya. Saya belum pernah menggunakan Pyth sebelumnya, jadi isyaratnya disambut.
sumber
APL (Dyalog) , 18 byte
Fungsi awalan diam-diam anonim.
Cobalah online!
(
...)⍣≡
terapkan fungsi tacit berikut sampai hasilnya identik dengan argumen:⊢
argumen+
plus~
tidak∘
yang×
signum×
waktu3⌈/
maksimal atas setiap kelompok tiga dari0,
nol diikuti oleh,
argumen diikuti oleh∘
sebuah0
nolsumber
Java 8,
155142 byteMemodifikasi input
int[]
alih-alih mengembalikan yang baru untuk menghemat byte.Penjelasan:
Coba di sini.
sumber
Ruby, 81 byte
Saya pikir batin
map
bisa lebih jauh golf.sumber
?
dan:
.PHP -
301291289288264 KarakterTidak memuncak pada jawaban lain sebelum mencoba ini. Jangan salahkan bahasanya, salahkan saya. Sangat menyenangkan dan menantang. Semua saran kode golf sangat dihargai.
Dijelaskan
sumber
1
bukantrue
,split
bukanexplode
,for
bukanwhile
,join
bukanimplode
, menghapus tanda kurung keriting tidak berguna, ...Python, 71 byte
The
zip
menciptakan semua panjang-3 sublists dari suatu elemen dan tetangganya, memperlakukan di luar titik akhir sebagai0
. Elemen pusatl[1]
sublistl
, jika nol, digantikan olehmax
tetangganyal[1]or max(l)
. Thel*all(l)
kembali daftarl
ketika tidak memiliki0
's.sumber
Ruby, 74 byte
bekerja dengan menemukan nomor non-nol terdekat.
sumber
MATL , 38 byte
Terjemahan langsung dari jawaban Matlab saya. Menggunakan versi saat ini bahasa / kompiler saat ini.
Contoh
EDIT: Coba online!dengan
X+
digantikan olehY+
danv
oleh&v
, karena perubahan yang dilakukan dalam bahasa.sumber