var QUESTION_ID=71735,OVERRIDE_USER=31516;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;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>
long int
ist nicht genug, du brauchstsuper long int
.Antworten:
Jolf,
1816 BytesProbieren Sie es hier aus! Ich wusste, dass die UpperLower-Funktion eines Tages nützlich sein würde! Ersetzen Sie
ó
durch
oder verwenden Sie einfach den Interpreter-Link. Dies ist in ISO 8859-7 kodiert.quelle
Perl,
3938 Bytes(1 Byte für das
-p
Flag hinzugefügt .)Richtiges Werkzeug für den Job ™.
Die Erklärung wird nach einer kleinen Optimierung veraltet (dank dev-null , dass es ein einziges Byte kürzer (aber etwas weniger elegant) macht!): Die
$"
Variable darstellt , wasjoin
auf , wenn eine arrray in einen String interpoliert, so Einstellung$"="|"
entfällt die Notwendigkeit fürjoin
.Demo:
quelle
$"="|"
anstatt beizutreten?$"="|";s/@{[65..90,97..122]}/chr$&/ge
Javascript, 80 Bytes
Sehen Sie regex hier in Aktion: https://regex101.com/r/iX8bJ2/1
Code-Snippet anzeigen
Nur aus Neugier habe ich hier eines gelernt:
Ich kann nicht ändern
x=>String.fromCharCode(x)
,String.fromCharCode
weil ...quelle
CJam, 22 Bytes
Probieren Sie es online!
Hintergrund
Das einfache Ersetzen aller Vorkommen von Zifferngruppen durch die entsprechenden Buchstaben (in beliebiger Reihenfolge) entspricht nicht der Links-Rechts-Regel.
Stattdessen können wir alle Präfixe der Eingabezeichenfolge generieren und versuchen, alle möglichen Ersetzungen vorzunehmen, während wir sie generieren. Da kein Codepunkt in einem anderen Codepunkt enthalten ist, ist die Reihenfolge dieser Versuche nicht wichtig.
Beispielsweise:
Wie es funktioniert
quelle
PHP,
1101021016867 BytesZiemlich schwere Herausforderung.
Das ist das Beste, was ich mir einfallen lassen konnte.Dies ist eine völlig neue Version.Laufen Sie wie folgt:
ctype_alpha
anstelle vonpreg_match
, thx verwendet, um zu manatworken0
der Zeichenfolge gespeichert , anstatt eine nicht leere Zeichenfolge zu überprüfen: Wenn das letzte Zeichen der Eingabe eine 0 ist, ist die Teilzeichenfolge, die ich nehme, "0", was falsch ist, während "00" wahr ist. Damit wird das Drucken der letzten 0 nicht übersprungen.strtr
eines Arrays mit Konvertierungspaaren wurden massive 33 Bytes gespartquelle
#[A-Z]#i
da der aktuelle froh ist, dass "92" in "\" umgewandelt wird. Oder versuchen Sie esctype_alpha()
stattpreg_match()
. Soweit scheint das zu funktionieren."0", which is falsy, whereas "00" is truthy
Gut gemacht, PHP.Python 3,
211189188 Bytes23 Byte durch Ersetzen von \ n durch; danke an Dennis
Prüfung
quelle
;
anstelle von Zeilenumbrüchen verwenden, können Sie die gesamte while-Schleife in eine einzelne Zeile einfügen. Auch die erste Zeile kann werdendef f(c,i=0,n=""):
.a=1;a=2 if 64<x<91 or 96<x<100 else a
->a=1+(64<x<91or 96<x<100)
etcPyth,
20 bis18 BytesGleicher Algorithmus wie @Dennis. Es ist viel einfacher, in Pyth auf meinem Handy zu programmieren als in Jelly.
Danke @isaacg
Probieren Sie es hier aus .
quelle
05AB1E , 12 Bytes
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
12 Byte- Alternative mit Reduction-By:
Probieren Sie es online aus oder überprüfen Sie alle Testfälle oder sehen Sie eine schrittweise Reduzierung mit nur den ersten 10 Bytes .
quelle