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 falseconvierte entrue true false falseotrue eslaf false eurt?eurtserfalseotrue?eurt->true1 3 2 4 5trufalse -> 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.Valueson"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.falstruefijo, 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
falstruey se guardó un byte.Versión anterior (inválida):
Explicación:
fuente
ly enilugar detyf, puede omitir el.s. f también está predefinido parafalseque 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
trufalseyfalstrueVersión anterior , 38 bytes (acortada, gracias a Digital Trauma):
fuente
rev|sed s/eurt/false/g\;s/eslaf/true/gfalstrue.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 -> falseslafytrufalse -> trueurtProbablemente 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=xla 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')falsecon!1ytruecon!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_kdy usar el reverso de la misma. Ahorrará 3 bytes.::_zJ"eurt"K"false"_K_Jes 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|eslafque coincidetrueo alfalserevés. Para la coincidencia aplicamos una función que devuelvetruesi la coincidencia es lexicográficamente menor queet(es decireslaf) y de lofalsecontrario. 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úatruesi fue "elsaf" yfalsesi fue "eurt". 46 bytes.falstrueproblema.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
sexiste 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.
s -> ("" + new StringBuffer (s.replaceAll ("false", "eurt")). reverse ()). replaceAll ("eurt", "false");Devuelve la cadena inversa correcta.
Versión sin golf:
s-> nuevo StringBuilder ( s.replaceAll ("falso", "eurt")) .reverse (). toString (). replaceAll ("eurt", "false");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
returnes 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 -> falselsafytrufalse -> trueurtMuy claro:
fuente
falstrue.print(input()[::-1].replace("eslaf","true").replace("eurt","false")))trufalseconviertetrufalse, mientras tiene que serlotrueurtJapt, 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
-Elugar de-efuente
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.