Hinweis: Diese Herausforderung beinhaltet das Herunterladen und Durchsuchen von HTML-Webseiten. Wenn Ihre Sprache dies nicht kann, möchten Sie möglicherweise nicht an dieser Herausforderung teilnehmen.
Einführung
Im neunzehnten Byte-Chat wird immer wieder darüber diskutiert, wer das Steuerbord führt. Lassen Sie uns also jedem helfen und die Gesamtzahl der Sterne pro Benutzer im Chat zählen.
Herausforderung
N
Berechnen Sie bei einer positiven Ganzzahl, die größer als Null ist, den / die Steuerbordleiter (n) der zuletzt N
markierten Nachrichten im Chat. Diese Meldungen können hier eingesehen werden . Hinweis: Jede Seite enthält 50 markierte Nachrichten. Es wird eine Liste der Top-5-Benutzer nach Anzahl der markierten Nachrichten ausgegeben . Ein Bonus von -15% auf Ihre Byteanzahl wird gewährt, wenn Sie die Benutzernamen dieser Benutzer anzeigen können, aber es wird keine Strafe gewährt, wenn Sie einfach die Benutzer-ID-Nummern anzeigen. Bitte beachten Sie, dass einige der markierten Nachrichten profan sind. Wenn Sie für diese Art von Sprache sensibel sind, lesen Sie die Seite mit Vorsicht.
Beispiele (Das Bild ist zum Zeitpunkt der Erstellung dieser Challenge an Steuerbord):
- (ROT) Input:
5
Output (mit Bonus):[Geobits Sp3000 PhiNotPi Seadrus]
- (BLAU) Input:
10
Output (ohne Bonus):[51024 17335 24697 116494 129255]
- (GRÜN) Input:
14
Output (ohne Bonus):[51024 116494 141697 17335 24697]
Zusätzliches Zeug:
Krawatten in den Top 5 werden nach der niedrigsten bis zur höchsten Benutzer-ID- Nummer sortiert . Wenn weniger als fünf Benutzer vorhanden sind, geben Sie die Bestenliste am Ende nur mit leeren Slots aus . Ein- und Ausgabe können in jedem Format erfolgen. Die Produktion muss nicht aktiviert werden. Wenn die Eingabe größer als ist 50
, müssen Sie weiterhin die Nachrichten auf Seite 2, Seite 3 usw. zählen. Sie können davon ausgehen, dass die Eingabe immer unter 2^31
und nicht so groß ist, dass sie 1) größer ist als die Anzahl der markierten Nachrichten dass es gibt und 2) wird das Programm nicht zum Absturz bringen (indem Arrays zu groß gemacht werden, der Speicher ausgeht, etc.).
Dies ist Code-Golf , der kürzeste Code in Bytes gewinnt!
Bestenlisten
Hier ist ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu generieren.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
## Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
## Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
var QUESTION_ID=62182,OVERRIDE_USER=36670;function answersUrl(e){return"http://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"http://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>