var QUESTION_ID=68504,OVERRIDE_USER=40695;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>
Réponses:
Pyth, 8 octets
@xnor a suggéré cette approche plus simple sur la réponse Pyth de @ FryAmTheEggman, puis je l'ai traduite en Pyth.
Ceci utilise le comportement pratique de
X
(translate) quand on ne donne que deux arguments: il traduit du second argument au second argument inversé. Nous faisons cela d'abord avec l'alphabet minuscule (G
), puis avec une majusculeG
.la source
C, 59 octets
Désolé d’avoir à nouveau évoqué C, mais j’ai été un peu déçu de ne voir que les fonctions C ici. J'avais l'impression que OP recherchait un produit utilisable.
Compilé sur Ubuntu 14.04 avec un simple:
L'exécutable résultant lit n'importe quel nombre de lignes de stdin et écrit le résultat dans stdout.
Merci à tant d’autres affiches pour le tour XOR.
la source
CJam, 17 octets
Je voulais aider GamrCorps à gérer sa solution CJam, mais le résultat a été si différent que j'ai décidé de donner une réponse distincte.
Essayez-le en ligne.
Explication
la source
JavaScript (ES6),
69 à67 octetsUtilise la même stratégie que ma réponse Japt :
Maudissez vos noms de propriété incroyablement longs, JS ...
la source
document.getElementById
document.getElementsByClassName
ou, sur Firefox et Chrome,document.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
Retina ,
171413 bytesCode:
Explication:
Cela fait des trucs magiques et complète la tâche.
Essayez ici .
la source
\
. Malheureusement, je n'ai pas encore ajouté de classes de caractères pour les lettres et les classes de caractères inversées.\T`lL`RlRL
.Pyth,
109Merci à Jakube d’avoir économisé un octet avec la nouvelle fonctionnalité de
;
!Suite de tests
Une explication rapide: réduisez en commençant par la saisie par les nombres 0 et 1. L’opération à effectuer consiste à traduire l’alphabet en minuscule avec
r...0
our...1
les fonctions inférieure et supérieure de python, respectivement, qui lui sont appliquées, puis inversées.la source
uXGr;H)2z
X
l'alphabet, puis l'alphabet en majuscule?XXzG)rG1
? Cela semble fonctionner.Julia,
746147 octetsC'est une fonction lambda qui accepte une chaîne et renvoie une chaîne. Pour l'appeler, assignez-le à une variable.
Nous apparions chaque lettre en utilisant une expression régulière et remplaçons chaque lettre par le caractère ASCII correspondant à 31 X ou le code ASCII de la lettre, moins 4.
la source
$
que vous souhaitiez peut-être le mettre à jour⊻
. Je ne savais pas que vous pouvez utiliser une fonction dansreplace
.C,
150129 octetsCette fonction convertit simplement char en int et ajoute le décalage approprié à int avant l'impression. Je sais que ce n'est pas le plus court, mais je n'ai pas vu une implémentation en C.
Exemple d'utilisation
UPDATE: raccourci un nom de variable.
la source
temp
) aient exactement un caractère.i,t;r(char*s){for(;i<strlen(s);i++){t=s[i]+25;t=t<116?180-t:244-t;isalpha(s[i])?putchar(t):putchar(s[i]);}}
Japt,
2322 octetsEssayez-le en ligne!
Comment ça fonctionne
la source
C, 64
Une fonction void qui modifie la chaîne en place.
Test: ideone
la source
c;t(char*p){for(;c=*p;)*p++=c>64&c<91|c>96&c<123?(c^31)-4:c;}
R,
6961 octetsMerci à @Giuseppe pour avoir supprimé quelques octets supplémentaires:
La version précédente:
Ceci est une fonction anonyme. Usage:
la source
intToUtf8(c(122:97,90:65))
au lieu desraw
conversions, et vous pouvez vous en débarrassercat
également. Je prends l'habitude de jouer au golf avec vos réponses à plus d'un an ...Sérieusement, 31 octets (non concurrents)
Décharge Hex:
Essayez-le en ligne
Expl:
Je viens de me rendre compte que les spécifications n'imposent aucun espace supplémentaire, mais il n'y a aucun moyen de supprimer les nouvelles lignes en sortie dans Seriously, donc il n'y a pas de solution Seriously.
la source
ESACREPPUesacrewol
signifieRuby, 40 octets
Nouvelle solution: vous avez volé la magie de quelques-uns des autres messages ici:
Ruby,
5546 octets9 octets de moins grâce à @manatwork
essai:
la source
Jolf, 15 octets
Suite de test ou essayez-le avec votre propre contribution
la source
2, 12 caractères / 26 octets (non concurrentiel)
Try it here (Firefox only).
Ajout de la fonction de translittération après la publication du défi.
Explication
la source
CJam, 21 octets
Pas une solution optimale ... pour l'instant ... Essayez-le en ligne
Il est difficile à expliquer sans regrouper les éléments. Voici donc une explication générale: obtient une entrée, insère deux fois l’alphabet majuscule et deux fois en minuscule, fait pivoter les éléments, combine les chaînes majuscules et minuscules, l’inverse et utilise la translittération (similaire à la réponse Retina).
la source
C (fonction), 50
Ceci s’appuie sur les trois réponses précédentes du C, c’est pourquoi @Ruud, @Danwakeem et @ edc65.
Cette fonction modifie un tableau de caractères sur place.
Je crois comprendre que les entrées de fonction sont autorisées à moins d’être explicitement interdites dans la question.
Essayez-le en ligne.
la source
PostgreSQL,
118125 octetsSqlFiddleDemo
Sortie:
Contribution:
SELECT text'...'s
MODIFIER:
Entrée sous forme de tableau:
SqlFiddleDemo
Sortie:
la source
Python 3,
195169168166 octetsMerci à @TrangOul pour -2 octets!
Comment n'ai-je pas vu que j'aurais pu jouer cela auparavant?
(sorta) ungolfed:
Essayez-le sur Ideone!
la source
[]
dejoin
.generator object <genexpr> at...
, mais je vais la testerstr
valeurs] itérables peuvent être passés àjoin()
function.Python, 61 octets
Une fonction anonyme. Sur les lettres, effectue l’opération d’inversion sur la représentation des bits en ajoutant 4, puis en retournant les cinq derniers bits, comme pour la réponse Javascript d’ ETHproductions .
la source
Haskell,
119 à104 octetsSauvegardé 15 octets grâce à @nimi.
Usage:
Explication
Je suis nouveau à Haskell ... en programmation fonctionnelle ... et sur le site, et je sais qu'il existe de nombreuses meilleures réponses à cette question, mais supportez-moi.
la source
let
. Commencez directement avecc=fromEnum
. Utilisez(155-c x)
et(219-c x)
. c)True
peut être remplacé par1<2
. - Le code ne parvient pas à charger pour moi avec l'erreur "ambigu type type" pour les fonctionsc
ets
(ghci 7.10.2), mais cela peut facilement être corrigé avecf[]=""
au lieu def[]=[]
.Perl 6 , 28 octets
Usage:
la source
Warning: Use of "ord" without parentheses is ambiguous at (eval 8)[/System/Library/Perl/5.18/perl5db.pl:732] line 2.
Je ne sais rien de Perl, est-ce que je fais quelque chose de mal? Comment pourrais-je courir ceci?m: my &swap = {S:g/\w/{chr $/.ord+4+^31}/}; say swap ('a'..'z').join
Java, 136 octets
Exemple d'utilisation:
Probablement le pire langage couramment utilisé en termes de taille en octets.
la source
void x(String i){for(Character c:i.toCharArray())System.out.print(c.isLetter(c)?(char)(c<91?90-(c-65):122-(c-97)):c);}
void y(String i){for(int c:i.getBytes())System.out.print((char)(c>65&c<91|c>96&c<123?c<91?90-(c-65):122-(c-97):c));}
( 116 bytes )90-(c-65)
dans-c+65+90
et122-(c-97)
dans-c+97+122
, ce qui enregistre un octet chacun.Shell Unix + tr + printf, 35 octets
Ici vous êtes, une réponse canonique en tr. Je pensais comment une question translittération l'alphabet aller sans réponse canonique à tr ansliterate l'alphabet?
tr à lui seul ne fait même pas un "Hello, World!" et comme tel n’est pas un langage de programmation,
j’aidoncmarqué la réponse comme non compétitive[1] .[1]: Edit: En fait, le shell Unix est la langue et tr est la bibliothèque standard . Merci à Downgoat et à Digital Trauma de m'avoir aidé à le comprendre.
la source
tr
en coreutils) en tant que bibliothèque standard. Voir d'innombrables de mes réponses ;-)tr: range-endpoints of 'Z-A' are in reverse collating sequence order
. Je pense que vous devez faire quelque chose commetr A-Za-z $(printf %s {Z..A} {z..a})
(et remplacer$( )
par des backticks)printf
, après tout, sa spécification par Posix . C'est aussi une bash qui est assez omniprésente de nos jours. Quoi qu'il en soit, avoir quelque chose de pré-installé sur le système de tout le monde n'est pas une condition préalable au code-golf - tout le monde n'a pas CJam sur son système non plus ;-)}
et{
est requis - sinon l'extension devient quelque chose commeZz Zy Zx ... Za Yz ... Aa
05AB1E , 5 octets [non concurrents]
Utilise le jeu de caractères CP-1252 .
Essayez-le en ligne!
Explication:
la source
MATL , 21
28octetsUtilise la version 6.0.0 , qui est antérieure à ce défi. Le code s'exécute dans Octave.
Exemple
Explication
Ancienne approche, 28 octets
la source
MATLAB, 61 octets
J'ai essayé
f=@ismember
, et en faisant la gammea=65:90
une variable et fais32+a
dans le deuxièmeismember
appel. Tout cela a raccourci le code, mais aboutirait à un programme et nécessiterait donc les deuxdisp
etinput
.Cela donne:
la source
Brachylog , 66 octets
Le manque de fonctions intégrées fait vraiment mal ici, nous devons donc recourir à de bons vieux calculs de codes ASCII.
Le prédicat
brachylog_main
attend une chaîne de codes de caractères en entrée et aucune sortie, par exemplebrachylog_main(`Hello, World!`,_).
Explication
la source
Perl 6,
4039 octetsPuisque tout le monde fait des fonctions anonymes:
(Merci @ b2gills pour le tuyau)
Utilise le même bit en retournant vaudou que certains des autres messages. Je ne savais pas s'il fallait inclure la déclaration de variable / fonction dans le nombre d'octets, alors je l'ai fait au cas où. Sans cela, cette solution n’est que de 34 octets.
Usage:
la source
*.trans(…)
pour le rendre plus court.Python 3,
164159 octetsla source