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
zp!_
czym zastąpić(const.h)
z(!)
aby zaoszczędzić 6 bajtów.id>>=foldl(!)
.CJam,
2724 bajtówSprawdź to tutaj.
Spycha to nienazwany blok, który przekształca listę na stosie w nową listę.
Wyjaśnienie
źródło
J,
2423 bajtyStosowanie:
Metoda jest podobna do rozwiązania Maurisa .
Wypróbuj online tutaj.
1 bajt zapisany dzięki Zgarbowi.
źródło
Mathematica,
77746662 bajtówZaoszczędzono 12 bajtów dzięki Martinowi Büttnerowi.
źródło
J, 33 bajty
Trochę dłużej, niż bym chciał.
źródło
Python 3.5, 83 bajty
Ta funkcja przyjmuje listę liczb całkowitych w języku Python. Nie jestem pewien, czy zostało wiele do gry w golfa, ale chciałbym, aby konkurował przynajmniej z innym językiem!
Od Pythona 3.5, PEP 448 pozwala nam rozpakować
s
się0,*s
. Wcześniejsze wersje wymagają jednego bajtu dodatkowego, na przykład:Kredyt do rozwiązania i wyjaśnienia user81655 koszulka dla pomagając mi uświadomić sobie, że nie ma potrzeby badania, czy lista przestał zmianie; Muszę tylko powtórzyć tyle razy, aby mieć pewność, że wszystkie zera musiały zostać pokryte. (Maksymalna potrzebna liczba iteracji jest o jeden mniejsza niż długość listy; to robi jedną iterację więcej, ponieważ wymaga to mniej kodu).
źródło
return
się wewnątrz tejfor _ in s
pętli?Matlab, 90 bajtów
Co powiesz na niektóre zwoje?
Przykład
źródło
Haskell,
6665 bajtówDefiniuje funkcję o nazwie
f
.Wyjaśnienie
Zamiast iterować automat komórkowy, obliczam bezpośrednio końcowe wartości. Definicja jest zrozumieniem pojedynczej listy. Wartość
i
waha się od0
dolength x - 1
, ponieważ zipujemyx
liczbami naturalnymi. Dla każdego indeksui
tworzymy listę list 2-elementowychZ tej listy obliczamy maksymalny element, którego druga współrzędna jest różna od zera, i bierzemy ten drugi element
!!1
. To daje najbliższą niezerową wartość do zindeksowaniai
, zrywając powiązania, biorąc większą wartość.źródło
Lua, 133 bajty
Dwie pętle, zagnieżdżone trójskładniki ... Jeśli chcę dalej grać w golfa, będę musiał znaleźć inny sposób, ale tego nie widzę.
Objaśnienia
Część
zostanie rozwinięty do
które można przetłumaczyć
if
jako zagnieżdżone jakoźródło
Pyth, 17 bajtów
Pobiera listę w stylu Pythona ze standardowego wejścia, wyświetla na standardowe wyjście.
Wyjaśnienie
Jest to w zasadzie tłumaczenie mojej odpowiedzi Haskella. Tak naprawdę nie korzystałem wcześniej z Pyth, więc wskazówki są mile widziane.
źródło
APL (Dyalog) , 18 bajtów
Anonimowa ukryta funkcja prefiksu.
Wypróbuj online!
(
…)⍣≡
Zastosuj następującą ukrytą funkcję, aż wynik będzie identyczny z argumentem:⊢
argument+
plus~
nie signum∘
×
×
czasy3⌈/
maksima dla każdej grupy trzech0,
zero, a następnie,
argument, po którym∘
następuje0
zeroźródło
Java 8,
155142 bajtówZmienia dane wejściowe
int[]
zamiast zwracać nowe, aby zapisać bajty.Wyjaśnienie:
Wypróbuj tutaj.
źródło
Ruby, 81 bajtów
Myślę, że wnętrze
map
może być jeszcze bardziej golfa.źródło
?
i:
.PHP -
301291289288264 znakówNie próbowałem osiągnąć innych odpowiedzi przed podjęciem tej próby. Nie obwiniaj języka, obwiniaj mnie. Bardzo przyjemne i wymagające mimo wszystko. Bardzo cenione są wszystkie porady dotyczące gry w golfa.
Wyjaśnił
źródło
1
zamiasttrue
,split
zamiastexplode
,for
zamiastwhile
,join
zamiastimplode
, usunąć zbędne klamrowych ...Python, 71 bajtów
zip
Tworzy wszystkie długości 3 listy zagnieżdżone danego składnika i jego sąsiadów, traktując poza punktami końcowymi jak0
. Centralny elementl[1]
podlistyl
, jeśli zero, jest zastępowany przezmax
jego sąsiadów zl[1]or max(l)
. Dol*all(l)
zwraca listęl
, gdy nie ma0
tych.źródło
Rubinowy, 74 bajty
działa poprzez znalezienie najbliższej niezerowej liczby.
źródło
MATL , 38 bajtów
Bezpośrednie tłumaczenie mojej odpowiedzi Matlaba. Używa bieżącej wersji języka / kompilatora.
Przykład
EDYCJA: Wypróbuj online! z
X+
zastąpieniem przezY+
iv
ze&v
względu na zmiany wprowadzone w języku.źródło