Continuando con mi solo fue un desafío de error :
Entrada:
Una cadena que consta de caracteres ASCII imprimibles sin espacios en blanco ni líneas nuevas.
Salida:
Primero convierta la entrada en un palíndromo al revertir la entrada y agregarla antes de sí misma, excluyendo el carácter del medio (es decir, con una entrada 1234567890
, se convertirá 0987654321234567890
).
Y luego genera este texto:
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0987654321234567890
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
(Desde el centro hacia afuera en ambas direcciones, cada personaje está separado por un espacio más que la línea anterior).
Reglas de desafío:
- Debe imprimir el doble de la longitud de la entrada, menos 3 líneas. Entonces, con la entrada
1234567890
, la salida que se muestra arriba es de 17 líneas (longitud 10 * 2 - 3). - La entrada solo contendrá ASCII imprimible (excluyendo espacio, tabulación y nueva línea).
- Los espacios finales son opcionales.
- Una nueva línea final es opcional.
- No se permiten espacios iniciales (adicionales) o nuevas líneas iniciales.
- Puede suponer que la entrada siempre tendrá al menos cuatro caracteres de longitud.
- A diferencia de mi Era solo un desafío de errores , tanto los formatos de entrada como los de salida son flexibles. Por lo tanto, puede generar el resultado como una matriz de cadenas, una lista de cadenas, 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 código. 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, agregue una explicación si es necesario.
Casos de prueba:
Input: 1234567890
Output:
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0987654321234567890
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
Input: ABCD
Output:
D C B A B C D
D C B A B C D
DCBABCD
D C B A B C D
D C B A B C D
Input: =>)}]
Output:
] } ) > = > ) } ]
] } ) > = > ) } ]
] } ) > = > ) } ]
]})>=>)}]
] } ) > = > ) } ]
] } ) > = > ) } ]
] } ) > = > ) } ]
Input: XXxxXX
Output:
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
XXxxXXXxxXX
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
Respuestas:
Carbón , 14 bytes
Pruébalo en línea!
AST:
fuente
Japt ,
2221 bytes¡Pruébelo en línea!
Explicación
Los primeros 8 bytes generan el cuadrante inferior derecho del patrón:
En este punto tenemos una serie de eg
["ABCD", "A B C D", "A B C D"]
. Desafortunadamente, se necesitan 13 bytes para cuadrar esto:fuente
05AB1E , 17 bytes
Pruébalo en línea!
-1 gracias a kalsowerus .
fuente
.c.∊
conû.c
û
... ¡gracias!JavaScript (ES6) ,
159136129127 bytesPruébalo en línea! Explicación a continuación
Primera entrada a codegolf, pido disculpas de antemano por cualquier error obvio.
¡Gracias a Justin Mariner por guardar 23 bytes! Gracias a Craig Ayre por guardar 11 bytes y por el informe de error.
fuente
x
en -2 en lugar de -1 y cambiarx<=l
a++x<=l
para que pueda eliminarx++
y guardar un byte?lines
está enredado con el espaciado, por lo que termina costando más bytes para que todo vuelva a funcionar. Pero estoy bastante seguro de que hay una mejor manera de organizar el código y agregar su sugerencia.SOGL V0.12 ,
2218 bytesPruébalo aquí!
Explicación:
fuente
╬-
el comando palindromize de cuatro vías? Estaba por aquí deseando que Japt tuviera algo así ...: P╬
es muchas cosas╬-
. Pero gracias, no pude encontrar esa página por alguna razónF
de∑
si se necesita.Python 3 ,
14914195 bytesPruébalo en línea!
Gracias a @KevinCruijssen y @ETHproductions por guardar algunos bytes
¡Un agradecimiento especial a @notjagan por guardar 46 bytes!
fuente
l=len(s);
al=len(s)-1;
y luego cambiar todos los valores que implicanl
(es decir,l-1
->l
;-l+2
->-l+1
; etc.) es de 8 bytes más corto. Pruébalo aquí-l+2
->2-l
:)center
lugar delfor
bucle!PHP,
145131 bytesLe tomó un poco de tiempo jugar golf ese byte adicional; Pero valió la pena.
imprime una nueva línea principal. Ejecutar como tubería con
-nR
o probarlo en línea .Descompostura
solución alternativa , misma longitud:
fuente
APL (Dyalog) , 37 bytes
Requiere
⎕IO←0
cuál es el predeterminado en muchos sistemas.{
...}
función anónima donde el argumento está representado por ⍵(
…)↑¨¨⊂⍵
Para cada (¨
) de los siguientes números tome (↑
) esa cantidad de caracteres de cada (¨
) del⊂
argumento completo ( ), rellenando con espacios según sea necesario:≢w
el número de caracteres en el argumentod←
almacenar eso en d⍳
que muchos ɩ nices (0 ... d - 1)1↓
soltar uno (el cero)∊¨
ϵ nlist (aplanar) cada↑
elevar el rango (convertir la lista de listas en una matriz)(m←
…)
Aplique la siguiente función tácita m , definida como:⊖
el argumento al revés⍪
encima de1
una fila]↓
caido de⊢
el argumento⍉
transponer(
...)↓
soltar:2-d
= - ( d - 2), es decir, d - 2 filas desde abajom
aplicar m⍉
transponerPruébalo en línea!
fuente
Java (OpenJDK 8) ,
201196 bytesPruébalo en línea!
Es la misma idea que usé para el desafío anterior , excepto que la cadena del generador ahora es un poco más larga y con casos más difíciles de manejar.
fuente
Python 3 ,
134124 bytesPruébalo en línea!
Primera publicación en PPCG después de estar al acecho por un tiempo. Buscando alguna sugerencia / consejo!
¡Gracias a @LyricLy y @ Łukasz Rogalski por las mejoras!
fuente
f=
en el bytecount, simplemente proporcionar una función anónima está bien.-len(s)+2
es solo2-len(s)
un byte menos.Haskell,
177163 bytesLa función
f
es la función de desafío y devuelve una lista de cadenas ([String]
), su usounlines
debe proporcionar la misma salida visual que los casos de prueba (main = putStr $ unlines $ f "test string"
para compilarla).Pruébalo en línea!
-14 bytes gracias a @nimi
fuente
k
Puede ser definido comok n=[1..n]>>" "
yp
comop=(++)=<<reverse.tail
(incluso esta definición en línea).Mathematica, 141 bytes
fuente