var QUESTION_ID=63256,OVERRIDE_USER=20569;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>
true true false false
devienttrue true false false
outrue eslaf false eurt
?eurt
devenirfalse
outrue
?eurt
->true
1 3 2 4 5
trufalse -> trueurt
?Réponses:
C # 6, 144 octets
Il utilise une expression régulière pour correspondre
true|false
, et s'il correspond,true
il sera remplacé pareslaf
, sinon pareurt
.m.Value[0]<'g'
est une façon plus courte de direm.Value[0]=="false"
, parce que les seules valeurs possibles pourm.Value
sont"true"
ou"false"
, donc si le code de caractère du premier caractère est plus petit que le code de caractère de'g'
, c'est"false"
.Ancienne version, 95 octets
Celui-ci avait un bug, il n'a pas renvoyé de sortie correcte pour
falstrue
.la source
falstrue
.falstrue
fixe, ce n'est plus <100 octets ... :(TeaScript ,
362524 octetsTeaScript est JavaScript pour le golf.
Modifications: enregistré 11 octets grâce à @ Vɪʜᴀɴ. Corrigé pour l'entrée
falstrue
et enregistré un octet.Ancienne version (invalide):
Explication:
la source
l
eti
au lieu det
etf
, vous pouvez annuler le.
s. f est également prédéfini pourfalse
que vous puissiez obtenir:xv¡g(l="eurt",i=f+¢)g(iv¡,lv¡)
xv¡g("eurt",f)g(f.T¡v¡,t)
(
méthodes après? Commereplace(/(\.[BcCdeE...])/g,"$1(")
ou similaire après l'insertion de points.falstrue
.Bash + GNU,
453873 octetsModifier: fonctionne avec les deux
trufalse
etfalstrue
Ancienne version , 38 octets (raccourci, grâce à Digital Trauma):
la source
rev|sed s/eurt/false/g\;s/eslaf/true/g
falstrue
.trufalse
.JavaScript ES6, 59
En tant que fonction anonyme.
Remarque: replace est utilisé comme raccourci pour match (). Map (). La chaîne remplacée est supprimée et la chaîne de sortie est faite pièce par pièce en arrière (donc pas besoin de l'inverser).
Testez l'exécution de l'extrait ci-dessous dans un navigateur compatible EcmaScript 6.
la source
Windows Batch,
184213 octetsCorrection du bug
falstrue -> falseslaf
ettrufalse -> trueurt
Probablement l'une des langues les moins populaires:
la source
falstrue
.Haskell, 94 octets
Effectue une correspondance de modèle sur la chaîne d'entrée, en recherchant "faux" ou "vrai" et ajoute le contraire au résultat de l'application de la fonction sur le reste de la chaîne. Si true ou false n'est pas trouvé, il utilise la récursivité pour inverser la chaîne de la même manière.
la source
f[]=[]
ligne du haut et la mettref x=x
en bas pour enregistrer un octet.JavaScript ES6,
9593 octetsFonction sans nom. Ajoutez
f=
au début pour l'utiliser. Merci Ismael! Suppose également que l'entrée ne contient pas d'onglets.la source
.replace(/eurt/g,false).replace(/eslaf/g,true)
, car ils seront convertis en chaîne. Essayeztrue + ''
(devrait revenir'true'
)false
avec!1
ettrue
avec!0
. Là, quelques octets plus court[...x]
place de x.split ''x=>[...x].reverse().join``[r='replace'](/eurt/g,!1)[r](/eslaf/g,!0)
. J'ai également changé le paramètre de jointure en une chaîne de modèle vide pour supprimer les virgules du tableau.Pyth, 30 octets
Ceci inverse l'entrée (
_z
), des substituts"eurt"
pour ,"false"
et"eslaf"
pour"true"
. Le remplacement se fait à l'aide de:
.Essayez-le en ligne
la source
"true"
et"false"
comme variable:,=d"true"=k"false"::_z_dk_kd
et en utiliser l'inverse. Il économisera 3 octets.::_zJ"eurt"K"false"_K_J
est de 23 octets.falstrue
.rs , 56 octets
Démonstration en direct et cas de test.
la source
falstrue
.Julia,
595546 octetsCela crée une fonction sans nom qui accepte une chaîne et renvoie une chaîne. Pour l'appeler, donnez-lui un nom, par exemple
f=s->...
.L'entrée est inversée à l'aide de
reverse
. Nous faisons correspondre sur l'expression régulièreeurt|eslaf
qui correspondtrue
ou enfalse
arrière. À la correspondance, nous appliquons une fonction qui renvoietrue
si la correspondance est lexicographiquement plus petite queet
(c.-à-d.eslaf
) etfalse
autrement. Les littéraux booléens sont convertis en chaîne dans la sortie.Enregistré 9 octets et résolu un problème grâce à Glen O!
la source
falstrue
.s->replace(reverse(s),r"eurt|eslaf",i->i<"et")
- utilise une expression régulière plutôt que de le faire deux fois, et une fonction pour le remplacement qui évaluetrue
si c'était "elsaf" etfalse
si c'était "eurt". 46 octets.falstrue
problème.Javascript, 135 octets
Tester:
=>
"faux est l'opposé de vrai"<=
"true fo etisoppo eht si false"Merci ProgramFOX et edc65 pour avoir signalé un bug!
la source
s
existe. De plus, votre code ne fonctionne pasfalstrue
: il devrait sortirfalseslaf
, nontrueslaf
. Voulez-vous résoudre ces problèmes? Merci! :)f=s=>s.split(""). ...
.Java,
1629892 octetsMerci (et désolé! ~) À @DanielM. pour me parler de StringBuffer et du fait que nous pouvons utiliser des fonctions!
Parce que, vous savez, Java.
Renvoie la chaîne correcte et inversée.
Version non golfée:
Fondamentalement, je remplace toutes les instances de "false" par un "true" en arrière, puis inverse la chaîne entière, puis remplace les versions maintenant en arrière de "true" (pas celles que je viens de remplacer) par "false". Peasy facile.
la source
return
est implicite lorsqu'il s'agit de lambdas à une ligneMathematica, 64 octets
la source
Python 3,
68100 bytesI'm still golfing it, but it's fixed to the bug, so
falstrue -> falselsaf
andtrufalse -> trueurt
Pretty straightforward:
la source
falstrue
.print(input()[::-1].replace("eslaf","true").replace("eurt","false"))
)trufalse
becomestrufalse
, while it needs to betrueurt
Japt, 26 bytes
Note: This may be invalid, as it requires bug fixes made after this challenge was posted.
Try it in the online interpreter! (Arrow function requires ES6-compliant browser, such as Firefox.)
How it works
Here's a version that worked before the bug fixes: (38 bytes)
la source
Gema, 43
(Gema is an obscure macro language.)
la source
Pyth,
28226 bytes thanks to Jakube
Works correctly for
falstrue
, as shown in the suite below.Test suite
la source
Haskell, 102 bytes
The replacement of "true" by "false" and vice-versa is quite lengthy with the pattern-matching, but at least it deals correctly with "falstrue" and the like. And besides, I suspect that a correct regex-based version would be a bit longer.
la source
Python 3 -
10892 bytesUses a regex to match on "true" or "false" and uses a lambda to process matches and choose what to use as a replacement string. Using repr gets the string representation of (len(match)>4) which gives "True" when "false" is matched and vice versa (and use .lower() because repr(bool) gives a capitalized string) to get the inverse of the match and finish up by reversing the replacement and then the processed input using [::-1]
Managed to get the length down 16 bytes from TFelds suggestions.
Edit: Python is back in front of java, no need for alarm.
la source
[::-1]
)print(re.compile("eslaf|eurt").sub(lambda m:repr(m.group(0)!="eurt").lower(),input()[::-1]))
print(re.sub("eslaf|eurt",lambda m:repr(m.group(0)!="eurt").lower(),input()[::-1]))
Changem.group(0)!="eurt"
tolen(m.group(0))>4
(for 1 more)𝔼𝕊𝕄𝕚𝕟, 40 chars / 65 bytes
Try it here (Firefox only).
Thanks to @feersum for pointing out a bug!
21 chars / 43 bytes, non-competitive
Try it here (Firefox only).
la source
falstrue
.Prolog, 225 bytes
Try it out online here
Run by querying in the following way:
la source
Ruby, 55 bytes
Test:
la source
Perl 5, 68 bytes
67 plus 1 for
-E
instead of-e
la source
OpenSCAD, 178 bytes
(Note that this uses the String Theory library, as OpenSCAD doesn't exactly have a standard library. Additionally, this is a function because the only allowed input is to hard-code it.
la source
C#, 260 bytes
la source
PHP, 60 bytes
Simple, reverses the string first, then replaces the reversed versions with their respective swaps.
"falstrue" becomes "eurtslaf" becomes "falseslaf".
la source
Perl 5.10, 54 bytes
Reverse, then replace. A different way of doing it besides the hash table used for the other Perl answer, which ends up being shorter!
Try it online.
la source
Pyth - 18 bytes
Can be golfed a lot more.
Test Suite.
la source
falstrue
.