¡Ayuda! El dispositivo funciona mal y cada vez que intento repetir una cadena, obtengo resultados desordenados. En lugar de repetir la misma cadena N veces, llena un cuadrado NxN con cada uno de sus caracteres y apila los cuadrados.
Por ejemplo, dada la cadena "Test"
y el número 2
, en lugar de "TestTest"
, obtengo:
TT
TT
ee
ee
ss
ss
tt
tt
Después de haber visto esto por un tiempo, me empezó a gustar. Tu tarea hoy es reproducir este extraño comportamiento. Dada una cadena no vacía que consiste solo en ASCII imprimible y un entero positivo , genera la cadena que devuelve mi dispositivo que funciona mal.
Se aplican todas las reglas estándar.
La entrada y salida pueden manejarse a través de cualquier medio razonable.
Este es el código de golf , por lo que gana el código más corto en bytes en cada idioma.
Casos de prueba
Entrada Salida ---------- "Prueba", 2 TT TT ee ee ss ss tt tt ---------- "UuU", 3 UUU UUU UUU uuu uuu uuu UUU UUU UUU ---------- "A", 5 AAAAA AAAAA AAAAA AAAAA AAAAA ----------
Puede encontrar un caso de prueba más grande aquí . ¡Buena suerte y diviértete jugando al golf!
it fills an NxN square
- No es una declaración correcta.Respuestas:
Jalea , 4 bytes
Inspirado en el abuso de gelatina del Sr. Xcoder
Un programa completo que toma la cadena y el número como argumentos de línea de comando e imprime el resultado (ya que como enlace diádico devuelve una lista de cadenas y caracteres de nueva línea, lo que puede no ser realmente aceptable).
Pruébalo en línea!
¿Cómo?
El ingenuo (no abusivo) cinco byter es:
El abuso usado por el Sr. Xcoder (Python
operator.mul
puede actuar sobre unastr
y unaint
para repetir losstr
caracteres únicos aquí, y el átomo que lo usa×
, vectoriza con su argumento izquierdo) puede usarse aquí también para reemplazarx€
con×
, dando el programa completo :fuente
Jalea , 5 bytes
Esto es exactamente lo que se nos pide que hagamos ... ¡Abusa del comportamiento indefinido! *
Pruébalo en línea!
* Por comportamiento indefinido estoy hablando de usar
×
para repetir cadenas. A veces es más corto que el comportamiento habitual, entonces, ¿por qué no?fuente
Haskell , 26 bytes
La función
(!)
devuelve una lista de líneas.Pruébalo en línea!
fuente
Bash + GNU Sed, 58
Usando una técnica muy similar a esta respuesta para ilustrar cuán cerca de ser un dup a esto, esta pregunta es:
Pruébalo en línea .
fuente
Casco ,
54 bytes-1 byte gracias a @Zgarb
Pruébalo en línea!
fuente
ṠMRṘ
funciona si intercambia las entradas.PowerShell , 31 bytes
Pruébalo en línea!
Explicación:
fuente
05AB1E ,
75 bytes-2 bytes gracias a scottinet
Pruébalo en línea!
fuente
=
) y reemplazandovy
conε
: ¡ Pruébelo en línea!Python 3 , 42 bytes
Pruébalo en línea!
fuente
MATL , 5 bytes
Pruébalo en línea!
Explicación
fuente
C ++,
125123 bytes-2 bytes gracias a aschepler
Asegúrese de que la sobrecarga del
+=
operador llamado toma unchar
tipo de datos en esta instrucciónif(!(i++%b))r+=10
fuente
using s=std::string;
es más corto quetypedef std::string s;
por dos bytes.Japt , 7 bytes
Emite una matriz de cadenas.
Pruébelo (
-R
marque solo con fines de visualización)Explicación
Entrada implícita de cadena
U
y enteroV
.Generar una matriz de enteros de
0
aV-1
y pasar cada uno a través de una función.Mapa (
m
) sobreU
y repetir (r
)V
veces cada carácter .Transponer y generar implícitamente la matriz resultante.
fuente
R , 59 bytes
Escribe a stdout.
Divide la cadena en caracteres, se repite cada
n^2
vez y luego imprime con anchon
y sin separador.Pruébalo en línea!
fuente
J,
1514 bytesSubóptimo seguro. Devuelve una matriz 2D de caracteres. Toma
n
como argumento izquierdo y la cadena como el derecho.En dispositivos móviles, faltan las comodidades habituales.
Explicación
(Para la vieja respuesta)
$"1 0
remodelar cada personaje para(2#[)
unan
*n
matriz.,/
unir matrices para producir la salida.fuente
Perl 5 , 26 + 1 (-p) = 27 bytes
Pruébalo en línea!
fuente
Pyth, 9 bytes
Pruébalo aquí!
Pyth,
1110 bytesPruébalo aquí!
O 10 bytes:
O 11 bytes:
fuente
Carbón de leña , 9 bytes
Pruébalo en línea!
Explicación
fuente
Brainfuck, 103 bytes
Pruébalo en línea (asegúrese de encender la memoria dinámica o no se ejecutará)
Nota: La entrada es ligeramente diferente. Este código toma una cadena donde el último carácter es un dígito para el número de repeticiones. Entonces la entrada podría verse como
Test5
.Este código requiere una cinta ilimitada y se basa en el comportamiento de ajuste de bytes.
Sin golf:
fuente
SOGLOnline commit 2940dbe , 4 bytes
Esto se hizo para una confirmación específica, es decir, la anterior a la que cambié
∙
, cuando se usa en una serie de cadenas, repitiendo cada letra x veces para repetir cada elemento x veces. aquí está el intérprete en línea sin esa versión, que, como se puede ver, no funciona.Para probar el commit, descargue esto , abra el
index.html
archivo, en el programa pegue∙ι*I
y en la entrada escriba algo comoExplicación:
fuente
Java 8,
152128118100 bytesPruébalo en línea!
fuente
s->n->{for(char c:s)for(int j=0;j++<n;System.out.println("".valueOf(new char[n]).replace('\0',c)));}
APL (Dyalog) , 8 bytes
Toma la repetición como argumento izquierdo y el texto como argumento derecho.
Pruébalo en línea!
{
...}
una lambda sin nombre donde⍺
representa el argumento izquierdo y⍵
el argumento derecho⍪⍵
convertir el texto en una tabla de una columna⍺/
replicar⍺
tiempos horizontalmente⍺⌿
replicar⍺
tiempos verticalmentefuente
Japt , 7 bytes
Devuelve una matriz de cadenas.
Pruébalo en línea! con la
-R
bandera para unir la matriz con nuevas líneas.Explicación
fuente
D, 86 bytes
Pruébalo en línea!
Toma la cadena como argumento izquierdo y el entero como argumento derecho. Este es un puerto de la respuesta C ++ de HatsuPointerKun en D.
fuente
C (gcc) ,
8379 bytesPruébalo en línea!
fuente
CJam, 11 bytes
Función que toma una cadena seguida de int.
Pruébalo en línea
fuente
Kotlin 1.1 - 99 bytes
Devuelve toda la salida como una cadena.
No se puede usar TryItOnline ya que 1.1 no es compatible
Prueba
Sería 84 si una lista de cadenas fuera aceptable como salida:
fuente
PHP, 97 bytes
fuente
Mathematica, 49 bytes
entrada
fuente
Pyth , 12 bytes
De mente pequeña, pero todavía no he llegado allí.
Explicación:
Banco de pruebas
fuente
Clojure ,
8275 bytesPruébalo en línea!
Sin comprimir:
Editar: eliminó algunos caracteres del final al reemplazar un bucle for con la función de repetición stdlib.
fuente
C # (.NET Core) , 68 + 18 bytes
También incluido en el recuento de bytes:
Pruébalo en línea!
La salida es una colección de colecciones de caracteres (una colección para cada línea).
Explicación:
fuente