var QUESTION_ID=75979,OVERRIDE_USER=52353;function answersUrl(e){return"https://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"https://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>
Respuestas:
Jalea ,
532 bytesGracias a Dennis por guardar 2 bytes. También gracias a FryAmTheEggman por guardar 1 byte. Código:
Explicación:
Utiliza la codificación Jelly .
Pruébalo en línea!
fuente
Python 3.5, 18 bytes
Esto funciona porque
print
el separador predeterminado es espacio simple.fuente
print(*input(),end=' ')
sería portátil, pero no es muy golfoso ...Hexagonía ,
21131210 bytesCódigo:
Ahorrado un montón de bytes gracias a FryAmTheEggman . Código:
O en una forma más legible:
Pruébalo en línea!
Explicación:
El programa Hexagony comienza en la esquina superior izquierda, configurando inmediatamente el borde de la memoria al valor ASCII de
P
, que es 80. Después de eso, podemos ver que se toma la siguiente ruta:Podemos ver que el camino tomado es:
P,<;.P/0....;*/>
. Después delP
, tomamos un byte de entrada del usuario. Si esto está vacío, la siguiente rama (<
) nos dirigiría al noreste. Si la entrada no está vacía, la sucursal nos dirige al sudeste. Después de eso, sacamos la entrada del usuario usando;
. Ajustamos el borde de la memoria aP
, que es 80. El cero seguido por el espejo se concatena a nuestro número, lo que da como resultado 800. Esto se genera con el;
comando, pero primero se toma el módulo 256, que da como resultado 32, que Es el personaje espacial. Después de eso, restablecemos el borde de la memoria usando el*
comando y volvemos al bucle sobre el resto de la entrada del usuario. Cuando terminamos con la entrada del usuario, la ruta se dirige al noreste:Básicamente, esto va al
@
comando, que finaliza el programa.Usando Timwi increíble 's HexagonyColorer para hacer los diagramas.
fuente
P,<0/*;@.>
P,<<>0;@>*
también es 10, pero desafortunadamente no creo que ayude a eliminar otro byte.Haskell, 11 bytes
Ejemplo de uso:
((:" ")=<<) "Code Golf"
->"C o d e G o l f "
.Asigne cada carácter
c
a una lista de dos elementos[c, space]
y concatene todo en una sola lista.fuente
Retina , 5
Tenga en cuenta el espacio al final de la segunda línea.
$&
es equivalente a$0
. Gracias a @ mbomb007 por este enlace .Pruébalo en línea.
fuente
$0
. Es lo mismo, pero más común.JavaScript, 20 bytes
Simple, solo deseo que Array.join agregue el espacio al final para poder guardar 3 bytes.
fuente
[...s,``].join` `
¿quizás?[...s,,].join
...join
función como el retorno, como era de esperar.` `
un comentario.> <> ,
1310 bytes3 bytes guardados gracias a @ Sp3000
Probar aquí . Haga clic en el enlace, luego Enviar , luego escriba alguna entrada y presione Dar , y finalmente ejecute el programa con Inicio o Ejecutar sin animación .
Explicación
fuente
i:0(?;o 'o
para 10io 'o
también funciona, por error.'
simplemente se envuelve, empujando caracteres hasta que encuentra otro'
para cerrarlo. En este caso, los correos electrónicos de apertura y cierre'
son el mismo carácter y la mayor parte del código fuente se inserta, pero el carácter superior solo sería espacio desde que se presionó el último.Java, 132 (System.in) o 99 (argumento del programa) bytes
¿Puedes sentir la sobrecarga esta noche?
Shooqie descubrió una forma más corta de 6 bytes para hacer esto, pero no robaré su enfoque. Sin embargo, lo he usado con las versiones STDIN y lambda.
28 caracteres para una lambda pero eso no cumple con los requisitos del programa.
fuente
replaceAll
.Cubix , 10 bytes
Cubix es un lenguaje bidimensional desarrollado por @ETHproductions donde los comandos se envuelven en un cubo. Pruébalo en línea
Esto se asigna a un cubo con longitud de borde 2
Comienza con una entrada
i
. El flujo se redirige hacia^
el norte a la cara superior.?
Si el valor es negativo, gire a la izquierda para terminar@
, el cero continúa en el desplazamiento a la derechaw
o el giro positivo a la derecha y luego se refleja a la izquierda\
. Carácter de salida con un espacio finaloSo
.fuente
Cubix , 9 bytes
¡Véalo trabajar en línea!
Cubix es un lenguaje en el que las instrucciones se trazan en la cara de un cubo. Este programa forma la siguiente red de cubos:
El puntero de instrucción comienza en
i
, que toma otro código de caracteres de la entrada y lo empuja a la pila. Si no queda más entrada para tomar,?
gira la IP hacia la izquierda, donde golpea/
, y se refleja hacia arriba@
, lo que finaliza el programa.Sin embargo, si queda una entrada, el valor será un código de caracteres. Como todos los códigos de 1 carácter son positivos,
?
hace que la IP gire a la derecha, donde se envuelve todo el cubo, pasandoo
por el camino que genera el carácter. Luego golpea, lo/
que hace que regrese>So
, lo que empuja e imprime un espacio. La IP continúa hacia el oeste hastai
regresar al inicio del ciclo principal.1 Si el carácter es un byte nulo, ignorará
?
y continuará en línea recta, simplemente generando un solo espacio.Por supuesto, solo puede hacer una explicación por escrito, por lo que le recomiendo que vea esto en el intérprete en línea . Hay una opción de "velocidad", que le permite ver la ejecución tan lenta o rápida como desee.
fuente
@.Uoi?So
Stax , 2 bytes
Corbatas gelatina!
Pruébalo en staxlang.xyz!
Todo lo que hace es empujar
0
a la pila y comprimir la cadena desde la entrada estándar con ella, repitiendo el 0 según sea necesario. En Stax, el punto de código 0 en una cadena generalmente se convierte a 32 (espacio).Esto es lo suficientemente corto como para que empacarlo no
ûT
haga más que reducir la legibilidad.fuente
05AB1E, 4 bytes
Pruébalo en línea.
Explicación
fuente
ðâJ
no competidorSðý
CJam ,
54 bytes1 byte menos gracias a @FryAmTheEggman
Pruébalo en línea!
Explicación
fuente
Java, 92
fuente
Awk, 7 bytes
(Código de 4 caracteres + opción de línea de comando de 3 caracteres).
Ejecución de muestra:
(Existe cierto desacuerdo sobre lo que debe incluirse en el recuento de opciones de la línea de comandos. Incluí lo que realmente se pasa al
awk
intérprete: “-”, “F” y un separador entre “F” y el parámetro de cadena vacía. Vea a continuación qué Quiero decir.)fuente
PHP, 39 bytes
Ejecútelo desde la línea de comando
https://eval.in/541179
fuente
WhoScript 38 bytes
Funciona mejor cuando la cadena se da en la línea de comando, pero también se puede hacer un carácter a la vez en tiempo real.
Sin golf:
fuente
Laberinto , 10 bytes
Esto termina con un error, pero los mensajes de error van a STDERR.
Pruébalo en línea!
Explicación
Este es uno de los raros casos en los que es factible un programa completamente lineal. El bucle se logra a través de los comandos de modificación del código fuente
<
y>
, lo que funciona porque después de cada iteración sabemos que la pila está vacía nuevamente.<
desplaza cíclicamente toda la línea una celda a la izquierda, por lo que terminamos con:Esto lleva el puntero de instrucción (IP) con él, por lo que la IP está ahora en el extremo derecho del código y tiene que moverse a la izquierda. A continuación,
>
realiza la modificación opuesta, por lo que cambia el código fuente de nuevo aAhora ejecutamos una única iteración (de derecha a izquierda), antes de que todo comience de nuevo:
fuente
Gema , 5 bytes
Ejecución de muestra:
fuente
MATL , 7 bytes
Pruébalo en línea!
Explicación
fuente
APL, 5 bytes
Esto toma 2 elementos para cada carácter en la cadena, con el efecto de agregar un espacio
Para convertirlo en un programa que tome stdin, es el mismo número de bytes:
Pruébalo aquí .
fuente
brainfuck,
2422 bytesEjemplo simple usando el 32 más corto conocido para los caracteres de espacio.
Pruébalo en línea
fuente
,[.>>-[-[-<]>>+<]>-.,]
Guarda dos bytes.PHP, 31 bytes
toma información del argumento de la línea de comando.
fuente
Threead ,
4516 Bytes no competitivos.Toma entrada a través de STDIN.
La primera línea / cinta simplemente lee bytes de STDIN y los escribe. La segunda línea, inicialmente almacena un espacio vía
32c
, luego, al mismo tiempo que se lee el siguiente carácter, genera ese espacio.Pruébalo en línea!
fuente
Python 2,
272524 bytesMás corto que la respuesta de Raffi ...
-1 gracias a 60919 (FlipTack).
fuente
lambda x:' '.join(x)+' '
es 1 byte más corto.C, 50 bytes
Un poco de
main()
recursividad :)Pruébalo en línea! - Si usa esto en su propia máquina, use Ctrl+ Dpara indicar EOF.
fuente
C, 56 Bytes (como argumento del programa), 46 Bytes (de stdin)
La vieja respuesta de C. Una vez compilado, el programa debe llamarse con una cadena como primer parámetro, una cadena con espacios debe estar entre comillas. Para el ejemplo en la publicación de inicio:
Que dará salida
Solución que se lee directamente desde stdin.
Un byte menos gracias a @FryAmTheEggman
fuente
stdin
lugar de tomarla como argumento. Además, aquí hay una página con algunos consejos útiles para seguir jugando golf en C: codegolf.stackexchange.com/q/2203/13877getchar()
es más corto. Además, no necesita la inclusión para la mayoría de los compiladores de C.R, 36 bytes
Ejemplo:
fuente
sep=" "
, por lo que puede ser mucho más corto: ¡ Pruébelo en línea!En serio, 7 bytes
Pruébalo en línea!
Hombre, ese espacio final requerido agregó 3 bytes adicionales. Sin ella,
,' j
funcionaría para 4.Explicación:
fuente
GolfScript, 6 bytes
Pruébalo en línea!
fuente