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
wirdtrue true false false
odertrue eslaf false eurt
?eurt
wurdefalse
odertrue
?eurt
->true
1 3 2 4 5
trufalse -> trueurt
?Antworten:
C # 6, 144 Bytes
Es wird ein regulärer Ausdruck verwendet, um eine Übereinstimmung zu erzielen
true|false
, und wenn er übereinstimmttrue
, wird er durch ersetzteslaf
, andernfalls durcheurt
.m.Value[0]<'g'
Art und Weise ist eine kürzere zu sagenm.Value[0]=="false"
, weil die einzig möglichen Werte fürm.Value
sind"true"
oder"false"
, also , wenn der Zeichencode des ersten Zeichens kleiner ist als der char - Code'g'
, es ist"false"
.Alte Version, 95 Bytes
Dieser hatte einen Fehler, für den keine korrekte Ausgabe zurückgegeben wurde
falstrue
.quelle
falstrue
.falstrue
Fixed ist es nicht mehr <100 Bytes ... :(TeaScript ,
362524 BytesTeaScript ist JavaScript zum Golfen.
Änderungen: 11 Bytes dank @ Vɪʜᴀɴ gespeichert. Bei der Eingabe behoben
falstrue
und ein Byte gespeichert.Alte Version (ungültig):
Erläuterung:
quelle
l
undi
anstelle vont
und verwendenf
, können Sie das.
s weglassen . f ist auch vordefiniert,false
damit Siexv¡g(l="eurt",i=f+¢)g(iv¡,lv¡)
xv¡g("eurt",f)g(f.T¡v¡,t)
(
nach Methoden automatisch einzufügen ? Ähnlichreplace(/(\.[BcCdeE...])/g,"$1(")
oder ähnlich nach dem Einfügen von Punkten.falstrue
.Bash + GNU,
453873 BytesBearbeiten: funktioniert mit beiden
trufalse
undfalstrue
Alte Version , 38 Bytes (verkürzt dank Digital Trauma):
quelle
rev|sed s/eurt/false/g\;s/eslaf/true/g
falstrue
.trufalse
.JavaScript ES6, 59
Als anonyme Funktion.
Beachten Sie, dass replace nur als Kurzform für match (). Map () verwendet wird. Die ersetzte Zeichenfolge wird verworfen und die Ausgabezeichenfolge wird Stück für Stück rückwärts erstellt (es ist also nicht erforderlich, sie umzukehren).
Testen Sie das folgende Snippet in einem EcmaScript 6-kompatiblen Browser.
quelle
Windows Batch,
184213 BytesFehler behoben
falstrue -> falseslaf
undtrufalse -> trueurt
Wahrscheinlich eine der weniger populären Sprachen:
quelle
falstrue
.Haskell, 94 Bytes
Führt einen Mustervergleich für die Eingabezeichenfolge durch, sucht nach "false" oder "true" und fügt das Gegenteil zum Ergebnis der Anwendung der Funktion auf den Rest der Zeichenfolge hinzu. Wenn true oder false nicht gefunden wird, wird die Zeichenfolge mithilfe der Rekursion auf dieselbe Weise umgekehrt.
quelle
f[]=[]
Zeile nehmen und stattdessenf x=x
die unterste Zeile setzen , um ein Byte zu speichern.JavaScript ES6,
9593 BytesUnbenannte Funktion. Fügen Sie
f=
am Anfang hinzu, um es zu verwenden. Danke Ismael! Nimmt auch an, dass die Eingabe keine Tabulatoren enthält.quelle
.replace(/eurt/g,false).replace(/eslaf/g,true)
, da sie in Zeichenfolge konvertiert werden. Versuchen Sietrue + ''
(sollte zurückkehren'true'
)false
mit!1
undtrue
mit!0
. Dort ein paar Bytes kürzer[...x]
anstelle von x.split ''x=>[...x].reverse().join``[r='replace'](/eurt/g,!1)[r](/eslaf/g,!0)
. Ich habe auch den Join-Parameter in einen leeren Template-String geändert, um Array-Kommas herauszulösen.Pyth, 30 Bytes
Dies kehrt die Eingabe (
_z
), die"eurt"
für"false"
und"eslaf"
für ersetzt, um"true"
. Der Austausch erfolgt mit:
.Probieren Sie es online aus
quelle
"true"
und"false"
als Variable: deklarieren und=d"true"=k"false"::_z_dk_kd
umgekehrt verwenden. Es werden 3 Bytes gespart.::_zJ"eurt"K"false"_K_J
ist 23 Bytes.falstrue
.RS , 56 Bytes
Live-Demo und Testfälle.
quelle
falstrue
.Julia,
595546 BytesDadurch wird eine unbenannte Funktion erstellt, die eine Zeichenfolge akzeptiert und eine Zeichenfolge zurückgibt. Um es zu nennen, geben Sie ihm einen Namen, z
f=s->...
.Die Eingabe wird mit umgekehrt
reverse
. Wir stimmen mit dem regulären Ausdruckeurt|eslaf
überein, der übereinstimmttrue
oderfalse
rückwärts. Auf das Match wird eine Funktion angewendet, die zurückgibt,true
wenn das Match lexikografisch kleiner alset
(dheslaf
) ist, undfalse
ansonsten. Die booleschen Literale werden in der Ausgabe in einen String konvertiert.9 Bytes gespart und ein Problem dank Glen O behoben!
quelle
falstrue
.s->replace(reverse(s),r"eurt|eslaf",i->i<"et")
- Verwendet einen regulären Ausdruck anstatt es zweimal zu tun, und eine Funktion für das Ersetzen, die bewertet,true
ob es "elsaf" war undfalse
ob es "eurt" war. 46 Bytes.falstrue
Problem.Javascript, 135 Bytes
Prüfung:
=>
"falsch ist das Gegenteil von wahr"<=
"wahr für etisoppo eht si falsch"Vielen Dank an ProgramFOX und edc65 für den Hinweis auf einen Fehler!
quelle
s
existiert. Außerdem funktioniert Ihr Code nicht fürfalstrue
: er sollte ausgegeben werdenfalseslaf
, nichttrueslaf
. Möchten Sie diese Probleme beheben? Vielen Dank! :)f=s=>s.split(""). ...
.Java,
1629892 BytesVielen Dank (und sorry! ~) An @DanielM. für das Erzählen von StringBuffer und der Tatsache, dass wir Funktionen verwenden können!
Weil Sie wissen, Java.
Gibt die korrekte, umgekehrte Zeichenfolge zurück.
Ungolfed Version:
Grundsätzlich ersetze ich alle Instanzen von "false" durch ein rückwärts gerichtetes "true", kehre dann die gesamte Zeichenfolge um und ersetze dann die jetzt rückwärts gerichteten Versionen von "true" (nicht die, die ich gerade ersetzt habe) durch "false". Kinderleicht.
quelle
return
ist implizit, wenn es sich um einzeilige Lambdas handeltMathematica, 64 Bytes
quelle
Python 3,
68100 BytesIch bin golfing es immer noch, aber es ist auf den Bug behoben, so
falstrue -> falselsaf
undtrufalse -> trueurt
Ziemlich einfach:
quelle
falstrue
.print(input()[::-1].replace("eslaf","true").replace("eurt","false"))
)trufalse
wirdtrufalse
, während es sein musstrueurt
Japt, 26 Bytes
Hinweis: Dies kann ungültig sein, da Fehlerbehebungen erforderlich sind, die nach dem Posten dieser Herausforderung vorgenommen wurden.
Probieren Sie es im Online-Dolmetscher aus ! (Für die Pfeilfunktion ist ein ES6-kompatibler Browser wie Firefox erforderlich.)
Wie es funktioniert
Hier ist eine Version, die vor den Bugfixes funktioniert hat: (38 Bytes)
quelle
Gema, 43
( Gema ist eine obskure Makrosprache.)
quelle
Pyth,
28226 Bytes dank Jakube
Funktioniert korrekt für
falstrue
, wie in der Suite unten gezeigt.Testsuite
quelle
Haskell, 102 Bytes
Das Ersetzen von "wahr" durch "falsch" und umgekehrt ist bei der Mustererkennung ziemlich langwierig, aber es handelt sich zumindest korrekt um "falstrue" und dergleichen. Außerdem vermute ich, dass eine korrekte, auf Regex basierende Version etwas länger dauern würde.
quelle
Python 3 -
10892 BytesVerwendet einen regulären Ausdruck, um eine Übereinstimmung mit "true" oder "false" zu erzielen, und verwendet ein Lambda, um Übereinstimmungen zu verarbeiten und auszuwählen, was als Ersatzzeichenfolge verwendet werden soll. Bei Verwendung von repr wird die Zeichenfolgendarstellung von (len (match)> 4) abgerufen, die "True" ergibt, wenn "false" abgeglichen wird, und umgekehrt des Spiels und beenden durch Umkehren der Ersetzung und dann die verarbeitete Eingabe mit [:: - 1]
Es ist gelungen, die Länge durch TFelds-Vorschläge um 16 Byte zu verringern.
Bearbeiten: Python ist wieder vor Java, kein Grund zur Beunruhigung.
quelle
[::-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
(für 1 weitere)𝔼𝕊𝕄𝕚𝕟 40 Zeichen / 65 Bytes
Try it here (Firefox only).
Vielen Dank an @feersum für den Hinweis auf einen Fehler!
21 Zeichen / 43 Byte, nicht wettbewerbsfähig
Try it here (Firefox only).
quelle
falstrue
.Prolog, 225 Bytes
Probieren Sie es hier online aus.
Führen Sie die Abfrage folgendermaßen aus:
quelle
Ruby, 55 Bytes
Prüfung:
quelle
Perl 5, 68 Bytes
67 plus 1 für
-E
statt-e
quelle
OpenSCAD, 178 Byte
(Beachten Sie, dass hierbei die String Theory-Bibliothek verwendet wird , da OpenSCAD nicht genau über eine Standardbibliothek verfügt. Außerdem handelt es sich um eine Funktion, da die einzige zulässige Eingabe darin besteht, diese fest zu codieren.
quelle
C # 260 Bytes
quelle
PHP, 60 Bytes
Einfach, kehrt die Zeichenfolge zuerst um und ersetzt dann die umgekehrten Versionen durch ihre jeweiligen Auslagerungspositionen.
Aus "falstrue" wird "eurtslaf" wird "falseslaf".
quelle
Perl 5.10, 54 Bytes
Rückwärts fahren, dann austauschen. Eine andere Methode, als die Hash-Tabelle, die für die andere Perl-Antwort verwendet wird und die am Ende kürzer ist!
Probieren Sie es online aus.
quelle
Pyth - 18 Bytes
Kann viel mehr golfen werden.
Test Suite .
quelle
falstrue
.