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
ne suffit pas, vous en avez besoinsuper long int
.Réponses:
Jolf,
1816 octetsEssayez-le ici! Je savais que la fonction upperLower serait utile un jour! Remplacez
ó
par
ou utilisez simplement le lien d'interpréteur. Ceci est codé dans ISO 8859-7.la source
Perl,
3938 octets(1 octet ajouté pour le
-p
drapeau.)Le bon outil pour le travail ™.
L'explication est obsolète après une petite optimisation (merci dev-null !) Qui le rend un seul octet plus court (mais un peu moins élégant): la
$"
variable représente quoi fairejoin
lors de l'interpolation d'un tableau dans une chaîne, donc le réglage$"="|"
supprime le besoin dejoin
.Démo:
la source
$"="|"
au lieu de rejoindre?$"="|";s/@{[65..90,97..122]}/chr$&/ge
Javascript, 80 octets
Voir regex en action ici: https://regex101.com/r/iX8bJ2/1
Afficher l'extrait de code
Par curiosité, une chose que j'ai apprise ici:
Je ne peux pas changer
x=>String.fromCharCode(x)
àString.fromCharCode
cause ...la source
CJam, 22 octets
Essayez-le en ligne!
Contexte
Le simple remplacement de toutes les occurrences de groupes de chiffres par les lettres correspondantes (dans l'ordre que nous choisissons) ne respectera pas la règle de gauche à droite.
Au lieu de cela, nous pouvons générer tous les préfixes de la chaîne d'entrée et tenter de faire toutes les substitutions possibles pendant que nous les générons. Puisqu'aucun point de code n'est contenu dans un autre point de code, l'ordre de ces tentatives n'est pas important.
Par exemple:
Comment ça marche
la source
PHP,
1101021016867 octetsDéfi assez difficile.
C'est le mieux que j'ai pu trouver.Ceci est une toute nouvelle version.Courez comme ceci:
ctype_alpha
au lieu depreg_match
, thx pour manatwork0
la chaîne au lieu de vérifier la chaîne non vide: lorsque le dernier caractère de l'entrée est un 0, la sous-chaîne que je prends serait "0", ce qui est faux, tandis que "00" est vrai, il ne sautera donc pas l'impression du dernier 0.strtr
après avoir construit un tableau avec des paires de conversionla source
#[A-Z]#i
que l' expression actuelle permette avec plaisir que «92» soit transformé en «\». Ou essayezctype_alpha()
au lieu depreg_match()
. Jusqu'ici semble fonctionner."0", which is falsy, whereas "00" is truthy
Bon départ, PHP.Python 3,
211189188 octets23 octets enregistrés en remplaçant \ n par; merci à Dennis
Tester
la source
;
au lieu de sauts de ligne, vous pouvez placer la boucle while entière sur une seule ligne. De plus, la première ligne peut devenirdef 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,
2018 octetsMême algorithme que @Dennis. Il est beaucoup plus facile de coder en Pyth sur mon téléphone qu'en Jelly.
Merci @isaacg
Essayez-le ici .
la source
05AB1E , 12 octets
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
Alternative de 12 octets utilisant la réduction par:
Essayez-le en ligne ou vérifiez tous les cas de test ou voyez une réduction pas à pas avec seulement les 10 premiers octets .
la source