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
tornatrue true false false
- se outrue eslaf false eurt
?eurt
se tornarfalse
outrue
?eurt
->true
1 3 2 4 5
trufalse -> trueurt
?Respostas:
C # 6, 144 bytes
Ele usa uma expressão regular para corresponder
true|false
e, se correspondertrue
, será substituído poreslaf
, caso contrário, poreurt
.m.Value[0]<'g'
é uma maneira mais curta de dizerm.Value[0]=="false"
, porque os únicos valores possíveis param.Value
são"true"
ou"false"
, portanto, se o código do primeiro caractere for menor que o código de'g'
, é"false"
.Versão antiga, 95 bytes
Este teve um bug, não retornou a saída correta para
falstrue
.fonte
falstrue
.falstrue
fixa, não é mais <100 bytes ... :(TeaScript ,
362524 bytesTeaScript é JavaScript para jogar golfe.
Edições: salvou 11 bytes graças a @ Vɪʜᴀɴ. Corrigido para entrada
falstrue
e salvo um byte.Versão antiga (inválida):
Explicação:
fonte
l
e emi
vez det
ef
, poderá omitir os.
s. f também é predefinido parafalse
que você possa obter:xv¡g(l="eurt",i=f+¢)g(iv¡,lv¡)
xv¡g("eurt",f)g(f.T¡v¡,t)
(
após métodos? Semelhantereplace(/(\.[BcCdeE...])/g,"$1(")
ou semelhante após inserir períodos.falstrue
.Bash + GNU,
453873 bytesEditar: trabalha com ambos
trufalse
efalstrue
Versão antiga , 38 bytes (reduzida, graças ao Digital Trauma):
fonte
rev|sed s/eurt/false/g\;s/eslaf/true/g
falstrue
.trufalse
.JavaScript ES6, 59
Como uma função anônima.
Observe que substituir é usado apenas como uma abreviação de match (). Map (). A string substituída é descartada e a string de saída é feita peça por peça para trás (portanto, não é necessário reverter).
Teste a execução do snippet abaixo em um navegador compatível com EcmaScript 6.
fonte
Lote do Windows,
184213 bytesCorrigido o erro
falstrue -> falseslaf
etrufalse -> trueurt
Provavelmente um dos idiomas menos populares:
fonte
falstrue
.Haskell, 94 bytes
Executa a correspondência de padrões na string de entrada, procurando "false" ou "true" e acrescenta o oposto ao resultado da aplicação da função no restante da string. Se true ou false não for encontrado, ele usa a recursão para reverter a string da mesma maneira.
fonte
f[]=[]
linha superior e colocarf x=x
na parte inferior para salvar um byte.JavaScript ES6,
9593 bytesFunção sem nome. Adicione
f=
ao começo para usá-lo. Obrigado Ismael! Também assume que a entrada não contém guias.fonte
.replace(/eurt/g,false).replace(/eslaf/g,true)
, pois eles serão convertidos em string. Tentetrue + ''
(deve retornar'true'
)false
com!1
etrue
com!0
. Lá, alguns bytes mais curtos[...x]
vez de x.split ''x=>[...x].reverse().join``[r='replace'](/eurt/g,!1)[r](/eslaf/g,!0)
. Também mudei o parâmetro de junção para uma sequência de modelo vazia para retirar as vírgulas da matriz.Pitão, 30 bytes
Isso inverte a entrada (
_z
), substitui"eurt"
por"false"
e"eslaf"
para"true"
. A substituição é feita usando:
.Experimente online
fonte
"true"
e"false"
como uma variável:,=d"true"=k"false"::_z_dk_kd
e usar o inverso. Ele salvará 3 bytes.::_zJ"eurt"K"false"_K_J
tem 23 bytes.falstrue
.rs , 56 bytes
Demonstração ao vivo e casos de teste.
fonte
falstrue
.Julia,
595546 bytesIsso cria uma função sem nome que aceita uma string e retorna uma string. Para chamá-lo, dê um nome, por exemplo
f=s->...
.A entrada é revertida usando
reverse
. Combinamos com a expressão regulareurt|eslaf
que correspondetrue
oufalse
retrocede. Para a correspondência, aplicamos uma função que retornatrue
se a correspondência for lexicograficamente menor queet
(ieeslaf
) efalse
caso contrário. Os literais booleanos são convertidos em string na saída.Economizou 9 bytes e corrigiu um problema graças ao Glen O!
fonte
falstrue
.s->replace(reverse(s),r"eurt|eslaf",i->i<"et")
- usa um regex em vez de fazê-lo duas vezes, e uma função para a substituição que avaliatrue
se foi "elsaf" efalse
se foi "eurt". 46 bytes.falstrue
problema.Javascript, 135 bytes
Teste:
=>
"false é o oposto de true"<=
"verdadeiro para etisoppo eht si falso"Obrigado ProgramFOX e edc65 por apontar um erro!
fonte
s
existe uma variável . Além disso, seu código não funcionafalstrue
: ele deve gerarfalseslaf
, nãotrueslaf
. Deseja corrigir esses problemas? Obrigado! :)f=s=>s.split(""). ...
.Java,
1629892 bytesObrigado (e desculpe! ~) A @DanielM. por me falar sobre o StringBuffer e o fato de podermos usar funções!
Porque, você sabe, Java.
Retorna a sequência correta e invertida.
Versão Ungolfed:
Basicamente, substituo todas as instâncias de "false" por uma "true" reversa, depois inverto a string inteira e substituo as versões agora anteriores de "true" (não as que acabei de substituir) por "false". Mole-mole.
fonte
return
está implícita quando se lida com lambdas de uma linhaMathematica, 64 bytes
fonte
Python 3,
68100 bytesAinda estou jogando golfe, mas está corrigido para o bug, então
falstrue -> falselsaf
etrufalse -> trueurt
Bem direto:
fonte
falstrue
.print(input()[::-1].replace("eslaf","true").replace("eurt","false"))
)trufalse
se tornatrufalse
, ao mesmo tempo ele precisa sertrueurt
Japonês, 26 bytes
Nota: Isso pode ser inválido, pois exige correções de erros feitas após o lançamento deste desafio.
Experimente no intérprete online ! (A função Seta requer um navegador compatível com ES6, como o Firefox.)
Como funciona
Aqui está uma versão que funcionou antes da correção do bug: (38 bytes)
fonte
Gema, 43
( Gema é uma linguagem macro obscura.)
fonte
Pyth,
28226 bytes graças a Jakube
Funciona corretamente para
falstrue
, como mostrado no conjunto abaixo.Suíte de teste
fonte
Haskell, 102 bytes
A substituição de "true" por "false" e vice-versa é bastante longa com a correspondência de padrões, mas pelo menos lida corretamente com "falstrue" e similares. Além disso, suspeito que uma versão correta baseada em regex seria um pouco mais longa.
fonte
Python
3-108bytesUsa um regex para corresponder em "true" ou "false" e usa um lambda para processar correspondências e escolher o que usar como uma sequência de substituição. O uso de repr obtém a representação de string de (len (match)> 4) que fornece "True" quando "false" é correspondido e vice-versa (e usa .lower () porque repr (bool) fornece uma string em maiúscula) para obter o inverso da partida e termine revertendo a substituição e depois a entrada processada usando [:: - 1]
Conseguiu reduzir 16 bytes de comprimento das sugestões do TFelds.
Edit: Python está de volta na frente do java, sem necessidade de alarme.
fonte
[::-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]))
Mudarm.group(0)!="eurt"
paralen(m.group(0))>4
(para 1 mais), 40 caracteres / 65 bytes
Try it here (Firefox only).
Obrigado a @feersum por apontar um bug!
21 caracteres / 43 bytes, não competitivo
Try it here (Firefox only).
fonte
falstrue
.Prolog, 225 bytes
Experimente on-line aqui.
Execute a consulta da seguinte maneira:
fonte
Ruby, 55 bytes
Teste:
fonte
Perl 5, 68 bytes
67 mais 1 para em
-E
vez de-e
fonte
OpenSCAD, 178 bytes
(Observe que isso usa a biblioteca String Theory , pois o OpenSCAD não possui exatamente uma biblioteca padrão. Além disso, essa é uma função porque a única entrada permitida é codificá-la.
fonte
C #, 260 bytes
fonte
PHP, 60 bytes
Simples, inverte a sequência primeiro e, em seguida, substitui as versões invertidas por seus respectivos swaps.
"falstrue" se torna "eurtslaf" se torna "falseslaf".
fonte
Perl 5.10, 54 bytes
Inverta e substitua. Uma maneira diferente de fazer isso além da tabela de hash usada para a outra resposta Perl, que acaba sendo mais curta!
Experimente online.
fonte
Pitão - 18 bytes
Pode ser jogado muito mais.
Conjunto de Teste .
fonte
falstrue
.