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
mitp!_
dann ersetzen(const.h)
mit(!)
zu speichern 6 Byte.id>>=foldl(!)
.CJam,
2724 BytesTeste es hier.
Dadurch wird ein unbenannter Block verschoben, der eine Liste auf dem Stapel in eine neue Liste umwandelt.
Erläuterung
quelle
J,
2423 BytesVerwendung:
Die Methode ähnelt der von Mauris .
Probieren Sie es hier online aus.
1 Byte gespart dank Zgarb.
quelle
Mathematica,
77746662 Bytes12 Bytes gespart dank Martin Büttner.
quelle
J, 33 Bytes
Ein bisschen länger als ich es mir gewünscht hätte.
quelle
Python 3.5, 83 Bytes
Diese Funktion erstellt eine Python-Liste mit ganzen Zahlen. Ich bin mir nicht sicher, ob es noch viel zu Golf zu tun gibt, aber ich würde es gerne schaffen, zumindest mit einer anderen Sprache konkurrenzfähig zu werden!
Von Python 3.5, PEP 448 lässt uns auspacken
s
in0,*s
. Frühere Releases erfordern ein Byte mehr:Wir danken der Lösung und Erklärung von user81655, mit der ich feststellen konnte, dass ich nicht mehr testen muss, ob sich die Liste nicht mehr ändert. Ich muss nur oft genug iterieren, um sicherzugehen, dass alle Nullen abgedeckt wurden. (Die maximal erforderliche Anzahl von Iterationen ist eine weniger als die Länge der Liste. Dies führt eine Iteration mehr als das aus, da dies weniger Code benötigt.)
quelle
return
zu innerhalb derfor _ in s
Schleife?Matlab, 90 Bytes
Wie wäre es mit einigen Windungen?
Beispiel
quelle
Haskell,
6665 BytesDies definiert eine aufgerufene Funktion
f
.Erläuterung
Anstatt den zellularen Automaten zu iterieren, berechne ich die Endwerte direkt. Die Definition ist ein einzelnes Listenverständnis. Der Wert
i
reicht von0
bislength x - 1
, da wirx
mit den natürlichen Zahlen zip . Für jeden Indexi
erstellen wir die Liste der Listen mit zwei ElementenAus dieser Liste berechnen wir das maximale Element, dessen zweite Koordinate ungleich Null ist, und nehmen das zweite Element mit
!!1
. Dies gibt dem Index den nächstgelegenen Wert ungleich Nulli
und unterbricht die Bindung, indem der größere Wert verwendet wird.quelle
Lua, 133 Bytes
Zwei Loops, verschachtelte Ternaries ... Wenn ich weiter Golf spielen möchte, muss ich einen anderen Weg finden, aber ich sehe keinen.
Erklärungen
Der Teil
wird erweitert um
was in verschachtelt übersetzt werden kann
if
alsquelle
Pyth, 17 Bytes
Nimmt eine Liste im Python-Stil von stdin und gibt sie nach stdout aus.
Erläuterung
Dies ist im Grunde eine Übersetzung meiner Haskell-Antwort. Ich habe Pyth noch nie wirklich benutzt, daher sind Hinweise willkommen.
quelle
APL (Dyalog) , 18 Bytes
Anonyme implizite Präfixfunktion.
Probieren Sie es online!
(
...)⍣≡
gilt die folgende stillschweigende Funktion , bis das Ergebnis auf das Argument identisch ist:⊢
das Argument+
Plus~
nicht∘
das×
signum×
mal3⌈/
die Maxima über jede Dreiergruppe von0,
Null gefolgt von,
das Argument gefolgt von∘
einer0
Nullquelle
Java 8,
155142 BytesÄndert die Eingabe,
int[]
anstatt eine neue zurückzugeben, um Bytes zu sparen.Erläuterung:
Probieren Sie es hier aus.
quelle
Ruby, 81 Bytes
Ich denke, das Innere
map
könnte weiter golfen werden.quelle
?
und entfernen:
.PHP -
301291289288264 ZeichenIch habe keine anderen Antworten gefunden, bevor ich dies versucht habe. Beschuldige nicht die Sprache, beschuldige mich. Sehr angenehm und trotzdem herausfordernd. Alle Code Golf Ratschläge sehr geschätzt.
Erklärt
quelle
1
statttrue
,split
eher alsexplode
,for
anstattwhile
,join
anstattimplode
nutzlose geschweiften Klammern entfernen, ...Python, 71 Bytes
Das
zip
erstellt alle 3-Längen-Unterlisten eines Elements und seiner Nachbarn und behandelt diese über die Endpunkte hinaus als0
. Das zentrale Elementl[1]
einer Unterlistel
, falls Null, wird durch dasmax
seiner Nachbarn mit ersetztl[1]or max(l)
. Derl*all(l)
gibt die Liste zurückl
wenn er keine hat0
.quelle
Ruby, 74 Bytes
funktioniert, indem die nächstgelegene Zahl ungleich Null ermittelt wird.
quelle
MATL , 38 Bytes
Direkte Übersetzung meiner Matlab-Antwort. Verwendet die aktuelle Version der Sprache / des Compilers.
Beispiel
EDIT: Probieren Sie es online! mit
X+
nachY+
undv
nach&v
aufgrund von Änderungen in der Sprache ersetzt.quelle