Introducción:
Inspirado por este comentario de @MagicOctopusUrn en @Emigna respuesta 05AB1E 's para mi ' Fue sólo un error ' desafío :
8F9ÝÀNð×ý}».∊Lo hice hizo una nave espacial fauces! Y estaba muy entusiasmado por sugerir una edición de 12 bytes. - Urna de pulpo mágico Jul 17 '17 a las 20:10
Que es un programa 05AB1E (heredado) que resulta en esto:
1234567890
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1234567890
Reto:
Entrada: una cadena no vacía
Salida: desde afuera hacia adentro, agregue un espacio más entre cada carácter en cada línea, similar a como se hizo en la salida anterior, igual a length - 1. Entonces, para una entrada, 1234567890la salida en realidad sería esta:
1234567890
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1234567890
¿Por qué? La longitud de 1234567890es 10. Entonces comenzamos generando 10 líneas: la primera línea sin espacios; segundo con un delimitador de espacio; tercero con dos; etc. Y luego (sin tener la línea media con length - 1espacios duplicados), volvemos a la entrada inicial mientras bajamos.
Reglas de desafío:
- Se garantiza que la entrada no está vacía (una longitud
>= 1). (Para las entradas de un solo carácter simplemente sacamos ese carácter). - Se permite cualquier cantidad de espacios finales / iniciales / nuevas líneas, siempre que la salida en sí (en cualquier lugar de la pantalla) sea correcta. (Las líneas vacías entre las líneas de salida tampoco están permitidas).
- La entrada solo contendrá caracteres ASCII imprimibles, excluyendo espacios en blanco (rango de puntos de código
[33, 126]) - I / O es flexible. La entrada puede tomarse como STDIN, argumento o parámetro de función. Puede ser una lista / matriz / secuencia de caracteres en lugar de una cadena. La salida también puede ser una lista / matriz / secuencia de caracteres en lugar de cadenas; puede imprimirse en STDOUT; devuelto como cadena delimitada por nueva línea; etc.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de código de golf lo desalienten de publicar respuestas con idiomas que no sean de codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
Input: @
Output:
@
Input: test
Output:
test
t e s t
t e s t
t e s t
t e s t
t e s t
test
Input: ?!
Output:
?!
? !
?!
Input: Spaceship
Output:
Spaceship
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
Spaceship
Input: 05AB1E
Output:
05AB1E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
05AB1E
Input: )}/\
Output:
)}/\
) } / \
) } / \
) } / \
) } / \
) } / \
)}/\

ಠ_ಠluego se da cuenta de que es porque lo creó accidentalmente hace un añoಠ⌣ಠ.Respuestas:
Japt ,
86 bytesToma la entrada como una matriz de caracteres, emite una matriz de cadenas.
Intentalo
Explicación
Original, 8 bytes
I / O es una cadena. Usa la
-Rbandera. Incluye espacios finales en cada línea.Intentalo
Explicación
fuente
S.ç()FTW una vez más :-)R ,
10599858479 bytes-6 gracias a @Kevin Cruissen y @Giuseppe
-14 de cambiar a un método basado en expresiones regulares
-1 gracias a @Giuseppe
-5 gracias a @digEmALl
Pruébalo en línea!
fuente
in(r<-.suna vez, así que puedes usarlo como argumentowritedirectamente; reduciéndolo a 99 bytes1lugar de un""enwrite? Estoy cavando tu uso deMap!collapseargumento,pastepero simplemente no está sucediendo ...JavaScript (ES6), 53 bytes
Toma la entrada como una matriz de caracteres.
Pruébalo en línea!
fuente
Carbón , 10 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
fuente
[a]- o es que otro comando separado?Lienzo , 8 bytes.
Pruébalo aquí!
los versión de 7 bytes era demasiado buena para este desafío.
fuente
/s en unX?─- palindromize vertical. La palindromización de Canvas hace cosas geniales . La parte superpuesta también tiene su propio carácter .Python 2 ,
7270686665 bytes-2 bytes gracias a Kevin Cruijssen
-3 bytes gracias a ovs
Pruébalo en línea!
fuente
c==len(w)-1se puede jugar al golf por 1 byte conc+2>len(w). EDITAR: en su nueva versión de 70 bytes,0<cpuede serc.05AB1E ,
109 bytesGuardado 1 bytes gracias a Adnan
Pruébalo en línea!
Explicación
fuente
S. La entrada es flexible, por lo que se permite ingresar como lista.»se puede omitir.»y cambia el bucleva un mapaε.εINð×ý}û»También funciona?Ruby ,
5449 bytesPruébalo en línea!
Toma la entrada como una matriz de caracteres, emite una matriz de cadenas.
fuente
Japt ,
98 bytes-1 byte de @Shaggy
Pruébalo en línea!
fuente
SpX->Xîpara un ahorro de 1 byte.PowerShell ,
6654 bytes-12 bytes gracias a mazzy
Pruébalo en línea!
Toma información a través de salpicaduras, que en TIO se manifiesta como argumentos de línea de comandos separados para cada personaje.
Primero establecemos
$a=$argscomo argumento de entrada. Luego establecemos$xigual a la.countde esa matriz-1. Luego necesitamos recorrer las letras para construir la nave espacial. Eso se hace construyendo un rango de0a$x, luego de$xregreso a0, luego usandoGet-Uniquepara extraer solo el rango apropiado.Cada iteración, tomamos nuestros argumentos de entrada y
-joinlos juntamos con el número correspondiente de espacios. Cada una de esas cadenas se deja en la tubería, y un implícitoWrite-Outputnos da nuevas líneas de forma gratuita cuando se completa el programa.fuente
0..($x=($a=$args).count-1)+$x..0|gu|%{$a-join(' '*$_)}Get-Uniquefunciona así en el rango? Eso es una locura! ¡Gracias!05AB1E (heredado) , 9 bytes
Entrada como lista de caracteres.
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
[,]y(,). Es posible que desee agregar esos casos para atrapar carbón también. (Moví los otros comentarios a la respuesta de Emigna, porque él era la respuesta que originalmente comenté)û»lugar de.∊.Haskell ,
6059 bytesPruébalo en línea!
Explicación
Para una cadena (p. Ej.
"abc") Aplicamos primeroque es lo mismo que
Esto se aplica repetidamente
(?)(agrega un espacio a cada carácter en el rango [33 ..] )strhasta que haya tantas cadenas comostrcaracteres:["abc","a b c ", "a b c "]Ahora solo necesitamos concatenar el resultado (menos el último elemento) con su contraparte invertida:
fuente
MATL ,
252213 bytesPruébalo en línea!
¡Gracias a Luis Mendo por sugerir un golf de 5 bytes, que luego me inspiró a ahorrar 4 bytes más!
Explicación, con entrada de ejemplo
'abc':fuente
Jalea , 9 bytes
Pruébalo en línea!
Devuelve una lista de líneas; salida prettified sobre TIO.
fuente
,€⁶$LСŒḄ. Otros, más similares, 9:J’⁶ẋŒḄɓjⱮyJ’⁶ẋŒḄjⱮ@(estaba buscando algo más corto pero todavía no me alegro)LḶ⁶ẋoŒḄ. Sin embargo, si logras encontrar un guardado, hazme un ping. :-),€⁶$LСŒḄpuede que no sea válido ya que tiene un anidamiento loco, por lo que podría necesitar unYprograma completo.['I', 'f', [[' '], 't', 'h', [['i']], 's'], ' ', 'i', ['s', ' '], 'a', [[' ', 's', 't'], 'r', ['i', 'n', 'g'], ' '], 'w', ['e', ' ', 'a', 'r', 'e'], ' ', 'd', 'o', ['o'], 'm', [[[[['e']]]]], [[[['d']]]], '!']Al menos he superado al 05AB1E ...Pyth , 12 bytes
Solo mi presentación obligatoria de Pyth. Estoy bastante orgulloso de esto, por lo que es probable que llegue pronto una explicación.
Pruébalo aquí!
Pruébalo aquí!
fuente
Stax , 10 bytes
Ejecutar y depurarlo
Salidas con espacios en blanco al final de cada línea.
Explicación:
fuente
Java (JDK 10) , 115 bytes
Pruébalo en línea!
fuente
l-Math.abs(i)se puede jugar a golfi<0?l+i:l-ipor -2 bytes.l-i<0?-i:i?l-(i<0?-i:i)(12 bytes).K (oK) ,
2524 bytesSolución:
Pruébalo en línea!
Explicación:
Puerto de mi solución K4 :
Notas:
fuente
,:'->+,Pascal (FPC) ,
143135 bytesPruébalo en línea!
Probablemente solo gane contra Lenguage ...
fuente
PHP,
8889 bytesrequiere PHP 5 o posterior para
str_split. Ejecutar como tubería con-nRo probarlo en línea .fuente
K4 , 23 bytes
Solución:
Ejemplo:
Explicación:
Tiene espacios en blanco al final de cada línea.
fuente
C #,
11310598 bytesPruébalo en línea!
fuente
s=>{antes y}después para que sea una función lambda. Además, una cosa para el golf es quitar los soportes alrededor del bucle for. Pruébalo en línea.Scala , 82 bytes
Pruébalo en línea
¡Scala tiene muchos atajos que me están ayudando aquí y eso es bastante legible! Prueba Scala
fuente
0unalengthcantidad de espacios, en lugar de0unalength-1cantidad de espacios. No conozco a Scala demasiado bien, pero parece que puedes solucionar ambos problemas con +4 bytes (86 bytes en total) de esta manera: ¡for(i<-(0 to a.size-1)union(-a.size+2 to 0))println(a.map(_+" "*Math.abs(i)).mkString)De nuevo, bienvenido, y disfruta de tu estadía! :)Oracle SQL, 115 bytes
No es un lenguaje de golf pero ...
Suponiendo que el valor está en la columna
vde la tablat:Violín de SQL
Configuración del esquema de Oracle 11g R2 :
Consulta 1 :
Resultados :
(SQLFiddle imprime los valores alineados a la derecha en la columna por alguna razón ... no hay espacios iniciales)
fuente
(.)puede jugar.usando en\0lugar de\1como lo haría en Java, por ejemplo? EDITAR: No importa, eso es para$0, no\0... ( Ejemplo de Java de lo que quise decir ).Código de máquina 8086,
5653 bytesMontado de:
Caso de prueba:
fuente
lengthcantidad de espacios y hay 9 líneas en total, pero la línea media debería tener unalength-1cantidad de espacios y debería haber un total de 7 líneas en su lugar (para la palabra de 4 letras 'prueba') ...: (¿Espero que no sea demasiado costoso en términos de bytes para arreglar?Haskell,
646059 bytesPruébalo en línea!
fuente
Bash ,
115,109,105,100,97,96,92,91, 90 bytes-5 y -3 gracias a Kevin Cruissen
Pruébalo en línea!
Tenga en cuenta que dado que el
\es un char salida al shell, el caso de prueba)}/\debe ser introducido con un extra de\la siguiente manera:)}/\\.fuente
inyprintfcomo en Python?bashcódigo solo ingresa una cadena ( es decir, solo una línea). Sin embargo, todos los casos de prueba funcionan, aunque)}/\deben ser comillas simples como esta<<< ')}/\' read s; ...etc.. Los espacios despuésinyprintfson necesarios.forydose pueden quitar.f=1se puede cambiar ac=f=1. Yf=f+cpuede serf+=c.f!=0afen el bucle for. Al igual que en JavaScript y Python,0es falsey y cualquier otro número entero positivo / negativo es aparentemente verdadero en Bash.Perl 6 , 43 bytes
Pruébalo en línea!
Devuelve una lista de líneas.
Explicación:
fuente
C (gcc) ,
131129111 bytesPruébalo en línea!
-20 bytes gracias a ceilingcat !
Pruébalo en línea!
O, si la longitud se puede aceptar como parámetro:
C (gcc),
105102 bytes-1 byte gracias a ceilingcat!
Pruébalo en línea!
fuente
xestá sombreado y, por lo tanto, se declara de forma redundante.PHP,
148146143141 BytesPuedes probarlo así:
Salida
Salvadera
Versión ampliada
Intento 2, 92 bytes
Después de ver la respuesta de @Titus, reduje la mía a esto:
Estaba tratando de pensar en una forma de usar 1 bucle, en lugar de 2 ... Lo creas o no, casi nunca uso el
forbucle en código "real". Era el~bit a bit No, que me faltaba ...Todavía es un poco más largo en
92así que no me siento tan mal. Pero lo pondré como un segundo intento de todos modos.$argnes la entrada de la línea de comandoSalvadera
fuente
flugar de asignar una anónima para$f:function f(ahorra 2 bytes$f=function(y guarda otro byte cada vez que llama enf(...)lugar de$f(...). Alternativamente, puede capturar el$s, ahorrando 2 bytes,($i)use($s)es 4 bytes más largo que($i,$s), pero guarda 3 bytes para cada llamada en$f($i)lugar de$f($s,$i); en idiomas con captura automática, como JS, esto es más a menudo un ahorro viable, porque no paga la penalidad de lausedeclaración.usepero parece más largo, para que ese sentido$isea dinámico, tendría que pasarlo por referencia. Por lo tanto, debe seruse(&$i)y$idebe definirse antes de pasarlo por referencia a$f. Lo que significa configurarlo en la función principal, o antes que cualquier otra. Para la función podría serfunction s($s,$i)y solo saber que tiene que ser invocado,s($s,0)pero parece feo, y eso es todo11 bytes, use(&$i),$i$sembargo, podríamos usarlo y cambiarlo\na un retorno de línea real. Eso lo lleva a1432 desde el final de la línea y 1 desde el usoflugar de un cierre:function s($s){for(;$i<strlen($s);++$i)f($i,$s);for(--$i;--$i>=0;)f($i,$s);}function f($i,$s){echo chunk_split($s,1,str_repeat(' ',$i))." ";}funciones adicionales como esta están permitidas de acuerdo con esta meta publicación: codegolf.meta.stackexchange.com/questions/7614/…