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
convierte entrue true false false
otrue eslaf false eurt
?eurt
serfalse
otrue
?eurt
->true
1 3 2 4 5
trufalse -> trueurt
?Respuestas:
C # 6, 144 bytes
Utiliza una expresión regular para hacer coincidir
true|false
, y si coincidetrue
, será reemplazado poreslaf
, de lo contrario, poreurt
.m.Value[0]<'g'
es una forma más corta de decirm.Value[0]=="false"
, porque los únicos valores posibles param.Value
son"true"
o"false"
, por lo tanto, si el código de caracteres del primer carácter es más pequeño que el código de caracteres'g'
, es"false"
.Versión anterior, 95 bytes
Este tenía un error, no devolvió la salida correcta para
falstrue
.fuente
falstrue
.falstrue
fijo, ya no es <100 bytes ... :(TeaScript ,
362524 bytesTeaScript es JavaScript para jugar al golf.
Ediciones: Guardado 11 bytes gracias a @ Vɪʜᴀɴ. Se corrigió la entrada
falstrue
y se guardó un byte.Versión anterior (inválida):
Explicación:
fuente
l
y eni
lugar det
yf
, puede omitir el.
s. f también está predefinido parafalse
que pueda obtener:xv¡g(l="eurt",i=f+¢)g(iv¡,lv¡)
xv¡g("eurt",f)g(f.T¡v¡,t)
(
después de los métodos? Me gustareplace(/(\.[BcCdeE...])/g,"$1(")
o similar después de insertar períodos.falstrue
.Bash + GNU,
453873 bytesEditar: funciona con ambos
trufalse
yfalstrue
Versión anterior , 38 bytes (acortada, gracias a Digital Trauma):
fuente
rev|sed s/eurt/false/g\;s/eslaf/true/g
falstrue
.trufalse
.JavaScript ES6, 59
Como una función anónima.
Tenga en cuenta que reemplazar se usa solo como una abreviatura de match (). Map (). La cadena reemplazada se descarta, y la cadena de salida se hace pieza por pieza hacia atrás (por lo que no es necesario invertir).
Pruebe a ejecutar el fragmento a continuación en un navegador compatible con EcmaScript 6.
fuente
Lote de Windows,
184213 bytesSe corrigió el error
falstrue -> falseslaf
ytrufalse -> trueurt
Probablemente uno de los idiomas menos populares:
fuente
falstrue
.Haskell, 94 bytes
Realiza la coincidencia de patrones en la cadena de entrada, busca "falso" o "verdadero" y agrega lo contrario al resultado de aplicar la función en el resto de la cadena. Si no se encuentra verdadero o falso, utiliza la recursión para invertir la cadena de la misma manera.
fuente
f[]=[]
línea superior y en su lugar ponerf x=x
la parte inferior para guardar un byte.JavaScript ES6,
9593 bytesFunción sin nombre Añadir
f=
al principio para usarlo. Gracias Ismael! También supone que la entrada no contiene pestañas.fuente
.replace(/eurt/g,false).replace(/eslaf/g,true)
, ya que se convertirán en cadena. Pruebatrue + ''
(debería regresar'true'
)false
con!1
ytrue
con!0
. Allí, unos pocos bytes más cortos[...x]
lugar de x.split ''x=>[...x].reverse().join``[r='replace'](/eurt/g,!1)[r](/eslaf/g,!0)
. También cambié el parámetro de unión a una cadena de plantilla vacía para eliminar comas de matriz.Pyth, 30 bytes
Esto invierte la entrada (
_z
), sustituye"eurt"
por"false"
y"eslaf"
para"true"
. El reemplazo se realiza usando:
.Pruébalo en línea
fuente
"true"
y"false"
como una variable:,=d"true"=k"false"::_z_dk_kd
y usar el reverso de la misma. Ahorrará 3 bytes.::_zJ"eurt"K"false"_K_J
es de 23 bytes.falstrue
.rs , 56 bytes
Demostración en vivo y casos de prueba.
fuente
falstrue
.Julia,
595546 bytesEsto crea una función sin nombre que acepta una cadena y devuelve una cadena. Para llamarlo, dale un nombre, por ejemplo
f=s->...
.La entrada se invierte usando
reverse
. Hacemos coincidir en la expresión regulareurt|eslaf
que coincidetrue
o alfalse
revés. Para la coincidencia aplicamos una función que devuelvetrue
si la coincidencia es lexicográficamente menor queet
(es decireslaf
) y de lofalse
contrario. Los literales booleanos se convierten en cadenas en la salida.¡Ahorré 9 bytes y solucioné un problema gracias a Glen O!
fuente
falstrue
.s->replace(reverse(s),r"eurt|eslaf",i->i<"et")
utiliza una expresión regular en lugar de hacerlo dos veces, y una función para el reemplazo que evalúatrue
si fue "elsaf" yfalse
si fue "eurt". 46 bytes.falstrue
problema.Javascript, 135 bytes
Prueba:
=>
"falso es lo opuesto a verdadero"<=
"verdadero para etisoppo eht si falso"¡Gracias ProgramFOX y edc65 por señalar un error!
fuente
s
existe una variable . Además, su código no funciona parafalstrue
: debería generarfalseslaf
, notrueslaf
. ¿Quieres solucionar estos problemas? ¡Gracias! :)f=s=>s.split(""). ...
.Java,
1629892 bytesGracias (y lo siento! ~) A @DanielM. ¡por contarme sobre StringBuffer y el hecho de que podemos usar funciones!
Porque, ya sabes, Java.
Devuelve la cadena inversa correcta.
Versión sin golf:
Básicamente, reemplazo todas las instancias de "falso" con un "verdadero" al revés, luego invierto toda la cadena y luego reemplazo las versiones ahora al revés de "verdadero" (no las que acabo de reemplazar) con "falso". Pan comido.
fuente
return
es implícito cuando se trata de lambdas de una líneaMathematica, 64 bytes
fuente
Python 3,
68100bytesTodavía lo estoy jugando al golf, pero está arreglado para el error, así que
falstrue -> falselsaf
ytrufalse -> trueurt
Muy claro:
fuente
falstrue
.print(input()[::-1].replace("eslaf","true").replace("eurt","false"))
)trufalse
conviertetrufalse
, mientras tiene que serlotrueurt
Japt, 26 bytes
Nota: Esto puede no ser válido, ya que requiere correcciones de errores realizadas después de que se publicó este desafío.
¡Pruébelo en el intérprete en línea ! (La función de flecha requiere un navegador compatible con ES6, como Firefox).
Cómo funciona
Aquí hay una versión que funcionó antes de la corrección de errores: (38 bytes)
fuente
Gema, 43
( Gema es un lenguaje macro oscuro).
fuente
Pyth,
28226 bytes gracias a Jakube
Funciona correctamente para
falstrue
, como se muestra en la suite a continuación.Banco de pruebas
fuente
Haskell, 102 bytes
El reemplazo de "verdadero" por "falso" y viceversa es bastante largo con la coincidencia de patrones, pero al menos trata correctamente con "falso" y similares. Y además, sospecho que una versión correcta basada en expresiones regulares sería un poco más larga.
fuente
Python 3 -
10892 bytesUtiliza una expresión regular para hacer coincidir en "verdadero" o "falso" y utiliza una lambda para procesar coincidencias y elegir qué usar como una cadena de reemplazo. El uso de repr obtiene la representación de cadena de (len (match)> 4) que da "True" cuando se coincide "false" y viceversa (y usa .lower () porque repr (bool) da una cadena en mayúscula) para obtener el inverso del partido y terminar invirtiendo el reemplazo y luego la entrada procesada usando [:: - 1]
Logramos reducir la longitud de 16 bytes de las sugerencias de TFelds.
Editar: Python está de vuelta frente a Java, no hay necesidad de alarma.
fuente
[::-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]))
Cambiarm.group(0)!="eurt"
alen(m.group(0))>4
(por 1 más)𝔼𝕊𝕄𝕚𝕟, 40 caracteres / 65 bytes
Try it here (Firefox only).
¡Gracias a @feersum por señalar un error!
21 caracteres / 43 bytes, no competitivos
Try it here (Firefox only).
fuente
falstrue
.Prólogo, 225 bytes
Pruébelo en línea aquí
Ejecútelo consultando de la siguiente manera:
fuente
Ruby, 55 bytes
Prueba:
fuente
Perl 5, 68 bytes
67 más 1 para en
-E
lugar de-e
fuente
OpenSCAD, 178 bytes
(Tenga en cuenta que esto usa la biblioteca de la teoría de cadenas , ya que OpenSCAD no tiene exactamente una biblioteca estándar. Además, esta es una función porque la única entrada permitida es codificarla.
fuente
C #, 260 bytes
fuente
PHP, 60 bytes
Simple, primero invierte la cadena, luego reemplaza las versiones invertidas con sus respectivos intercambios.
"falstrue" se convierte en "eurtslaf" se convierte en "falseslaf".
fuente
Perl 5.10, 54 bytes
Invierta, luego reemplace. Una forma diferente de hacerlo además de la tabla hash utilizada para la otra respuesta de Perl, ¡que termina siendo más corta!
Pruébalo en línea.
fuente
Pyth - 18 bytes
Se puede jugar mucho más al golf.
Test Suite .
fuente
falstrue
.