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
staje siętrue true false false
lubtrue eslaf false eurt
?eurt
zostaćfalse
lubtrue
?eurt
->true
1 3 2 4 5
trufalse -> trueurt
?Odpowiedzi:
C # 6, 144 bajty
Do dopasowania używa wyrażenia regularnego
true|false
, a jeśli pasujetrue
, zostanie zastąpione przezeslaf
, w przeciwnym razie przezeurt
.m.Value[0]<'g'
jest krótszym sposobem na powiedzeniem.Value[0]=="false"
, ponieważ jedynymi możliwymi wartościamim.Value
są"true"
lub"false"
, więc jeśli kod znaku pierwszego znaku jest mniejszy niż kod znaku'g'
, to"false"
.Stara wersja, 95 bajtów
Ten miał błąd, który nie zwrócił prawidłowego wyjścia
falstrue
.źródło
falstrue
.falstrue
ustalonego, nie ma już <100 bajtów ... :(TeaScript ,
362524 bajtówTeaScript to JavaScript do gry w golfa.
Edycje: Zapisano 11 bajtów dzięki @ Vɪʜᴀɴ. Naprawiono wprowadzanie
falstrue
i zapisano bajt.Stara wersja (nieprawidłowa):
Wyjaśnienie:
źródło
l
ii
zamiastt
if
, możesz pominąć.
s. f jest również predefiniowany,false
dzięki czemu można uzyskać:xv¡g(l="eurt",i=f+¢)g(iv¡,lv¡)
xv¡g("eurt",f)g(f.T¡v¡,t)
(
po metodach? Jakreplace(/(\.[BcCdeE...])/g,"$1(")
lub podobny po włożeniu okresy.falstrue
.Bash + GNU,
453873 bajtówEdycja: działa zarówno z, jak
trufalse
ifalstrue
Stara wersja , 38 bajtów (skrócona dzięki Digital Trauma):
źródło
rev|sed s/eurt/false/g\;s/eslaf/true/g
falstrue
.trufalse
.JavaScript ES6, 59
Jako funkcja anonimowa.
Uwaga: zamień jest używany tylko jako skrót dla match (). Map (). Zastąpiony ciąg jest odrzucany, a ciąg wyjściowy jest wykonywany kawałek po kawałku do tyłu (więc nie ma potrzeby cofania).
Przetestuj poniższy fragment kodu w przeglądarce zgodnej z EcmaScript 6.
źródło
Pakiet Windows,
184213 bajtówNaprawiono błąd
falstrue -> falseslaf
itrufalse -> trueurt
Prawdopodobnie jeden z mniej popularnych języków:
źródło
falstrue
.Haskell, 94 bajty
Wykonuje dopasowanie wzorca do ciągu wejściowego, szukając „false” lub „true” i dołącza przeciwieństwo do wyniku zastosowania funkcji na pozostałej części ciągu. Jeśli prawda lub fałsz nie zostaną znalezione, używa rekurencji do odwrócenia łańcucha w ten sam sposób.
źródło
f[]=[]
linię i zamiast tego umieścićf x=x
na dole, aby zapisać bajt.JavaScript ES6,
9593 bajtówFunkcja bez nazwy. Dodaj
f=
do początku, aby z niego korzystać. Dzięki Ismael! Zakłada również, że dane wejściowe nie zawierają tabulatorów.źródło
.replace(/eurt/g,false).replace(/eslaf/g,true)
, ponieważ zostaną przekonwertowane na ciąg. Spróbujtrue + ''
(powinien wrócić'true'
)false
pomocą!1
i zatrue
pomocą!0
. Tam kilka bajtów krótszych[...x]
zamiast x.split ''x=>[...x].reverse().join``[r='replace'](/eurt/g,!1)[r](/eslaf/g,!0)
. I also changed the join param to an empty template string to make strip out array commas.Pyth, 30 bytes
This reverses the input (
_z
), substitutes"eurt"
for"false"
and"eslaf"
for"true"
. Replacement is done using:
.Try it online
źródło
"true"
and"false"
as a variable:=d"true"=k"false"::_z_dk_kd
, and use the reverse of it. It will save 3 bytes.::_zJ"eurt"K"false"_K_J
is 23 bytes.falstrue
.rs, 56 bytes
Live demo and test cases.
źródło
falstrue
.Julia,
595546 bytesThis creates an unnamed function that accepts a string and returns a string. To call it, give it a name, e.g.
f=s->...
.The input is reversed using
reverse
. We match on the regular expressioneurt|eslaf
which matchestrue
orfalse
backwards. To the match we apply a function that returnstrue
if the match is lexicographically smaller thanet
(i.e.eslaf
) andfalse
otherwise. The boolean literals are converted to string in the output.Saved 9 bytes and fixed an issue thanks to Glen O!
źródło
falstrue
.s->replace(reverse(s),r"eurt|eslaf",i->i<"et")
- uses a regex rather than doing it twice, and a function for the replace that evaluates totrue
if it was "elsaf" and tofalse
if it was "eurt". 46 bytes.falstrue
issue.Javascript, 135 Bytes
Test:
=>
"false is the opposite of true"<=
"true fo etisoppo eht si false"Thanks ProgramFOX and edc65 for pointing out a bug!
źródło
s
exists. Also, your code does not work forfalstrue
: it should outputfalseslaf
, nottrueslaf
. Do you want to fix these issues? Thanks! :)f=s=>s.split(""). ...
.Java,
1629892 bytesThanks (and sorry!~) to @DanielM. for telling me about StringBuffer and the fact that we can use functions!
Because, you know, Java.
Returns the correct, reversed string.
Ungolfed Version:
Basically, I replace all instances of "false" with a backwards "true", then reverse the entire string, and then replace the now backwards versions of "true" (not the ones I just replaced) with "false". Easy peasy.
źródło
return
is implicit when dealing with one-line lambdasMathematica, 64 bytes
źródło
Python 3,
68100 bytesI'm still golfing it, but it's fixed to the bug, so
falstrue -> falselsaf
andtrufalse -> trueurt
Pretty straightforward:
źródło
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)
źródło
Gema, 43
(Gema is an obscure macro language.)
źródło
Pyth,
28226 bytes thanks to Jakube
Works correctly for
falstrue
, as shown in the suite below.Test suite
źródło
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.
źródło
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.
źródło
[::-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).
źródło
falstrue
.Prolog, 225 bytes
Try it out online here
Run by querying in the following way:
źródło
Ruby, 55 bytes
Test:
źródło
Perl 5, 68 bytes
67 plus 1 for
-E
instead of-e
źródło
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.
źródło
C#, 260 bytes
źródło
PHP, 60 bytes
Simple, reverses the string first, then replaces the reversed versions with their respective swaps.
"falstrue" becomes "eurtslaf" becomes "falseslaf".
źródło
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.
źródło
Pyth - 18 bytes
Can be golfed a lot more.
Test Suite.
źródło
falstrue
.