En este desafío, colocará letras del alfabeto en un plano cartesiano y mostrará el resultado como un texto.
Su entrada consistirá en una lista de lista con 3 parámetros:
- Coordenada X
- Coordenada Y
- Cuerda
¿Cómo?
Sabemos que un plano cartesiano contiene 2 ejes y 4 cuadrantes donde los signos de las coordenadas son , , y . Por ejemplo
Considere la siguiente matriz 3 por 3 como un plano cartesiano
Si se nos da en la entrada, algo así como [[-1,1,L],[0,1,F]]nuestra matriz se verá similar a
Y la salida final LF
Además de eso, hay algunos puntos que debemos seguir para obtener la salida correcta:
- Cuando se repite una coordenada X, Y, deberá concatenar las cadenas. Ejemplo: suponga que en (-1,1)
Fse coloca la cadena y necesita colocarlaaen el mismo punto. Concatena ambas cadenas que resultan enFay ese es el valor que irá en (-1,1). - Su salida debe ser coherente con la matriz. Ejemplo imagina esto como tu resultado final:
Debe salida
Ma rie
i s
cute
¿Por qué?
Puede ver esto como una tabla donde las columnas son los valores del eje xy las filas el eje y.
Column 1 | Column 2 | Column 3
----------------------------------------
Row 1 | "Ma" | "r" | "ie"
Row 2 | "i" | "s" |
Row 3 | "cute" | |
Todos los valores de las columnas deben tener la misma longitud.
Column 1 | Column 2 | Column 3
----------------------------------------
Row 1 | "Ma " | "r" | "ie"
Row 2 | "i " | "s" |
Row 3 | "cute" | |
Finalmente sacamos el resultado
Ma rie
i s
cute
Casos de prueba
Input
------------
[[3, 3, "c"]
[4, 1, "un"]
[5, 3, "e"]
[4, 3, "od"]
[4, 2, "lf"]
[1, 2, "go"]
[2, 1, "i"]
[2, 1, "s f"]]
Output
--------------
code
go lf
is f un
Input
--------------
[[0, 0, 's'],
[-1,1, 'M'],
[0, 1, 'r'],
[-1,1, 'a'],
[1, 1, 'i'],
[-1, 0, 'i'],
[1, 1, 'e'],
[-1,- 1, 'c'],
[-1,- 1, 'u'],
[-1, -1, 'te']]
Output.
----------------
Ma rie
i s
cute
Notas
- Se supone que esto es código golf
- Puede ajustar las coordenadas en una sola lista, por ejemplo
[[3, 3], "c"] - Puede tomar la entrada en cualquier formato razonable
- Puede suponer que no habrá ningún número o espacios vacíos solo en la entrada. Por ejemplo, puede haber algo como
a apero nunca1o" "o1ao1 1
fuente

a a, pero nunca1o `` o1ao1 1(int a,int b,string c):?Respuestas:
JavaScript (ES8),
186 180179 bytesGuardado 1 byte gracias a @Shaggy
Pruébalo en línea!
Índices negativos en JS (o la falta de ellos)
Dada una matriz
A[], es perfectamente legal en JS hacer algo asíA[-1] = 5. Sin embargo, esto no guardará el valor en la matriz misma. En cambio, obligará implícitamente este índice negativo a una cadena ("-1") y establecerá la propiedad correspondiente en el objeto circundante de la matriz.La mala noticia es que las propiedades no son iterables con métodos como
map():Pruébalo en línea!
El código anterior solo mostrará
3 is stored at index 1.Una posible solución sería:
Pruébalo en línea!
Pero:
Que hacemos aqui
Esto es lo que hacemos en su lugar:
fuente
odentrow:w=[o=[]].Python 2 ,
188185181 bytesPruébalo en línea!
fuente
APL (Dyalog Unicode) , SBCS de 39 bytes
Infix lambda anónimo tomando * listas de coordenadas y cadenas como argumentos izquierdo y derecho.
Pruébalo en línea!
{...}"dfn"; Los argumentos izquierdo (coordenadas) y derecho (cadenas) son⍺y⍵:⊂''cadena vacía cerrada, así que úsela como relleno para una matriz(...)⍴cíclicamente r eshape en una matriz de las siguientes dimensiones:⌊/⍺el valor más bajo a lo largo de cada eje de las coordenadas⍺-restar eso de todas las coordenadas1+agregue eso a uno (ya que queremos el rango inclusivo)c←tienda enc(para c oordinates)⌈/el valor más alto a lo largo de cada eje de esos⊃desempaquetar para usar como dimensionesm←almacenar enm(para m atrix)⍵⊣descartar eso a favor de las cuerdasm[c],←agregarlos amlas coordenadascm⊣descartar a los partidarios de la enmiendam⌽espejo↓dividido en una lista de listas de cadenas↑¨mezcle cada lista de cadenas en una matriz de caracteres, rellenando con espacios,/reducir por concatenación horizontal⊃desempaquetar (ya que la reducción reduce el rango de 1 a 0)* Si se requiere tomar un solo argumento de coordenadas y cadenas entrelazadas, será 5 bytes más largo.
fuente
05AB1E ,
4544 bytesToma las coordenadas de entrada como una lista interna.
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
Carbón , 60 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Extraer las coordenadas de la entrada.
Pase sobre las coordenadas x.
Pase sobre las coordenadas y, extrayendo y concatenando todas las cadenas en las coordenadas dadas.
Imprima las cadenas en orden inverso a medida que las coordenadas y se invierten en comparación con el sistema de coordenadas de carbón.
Ir al inicio de la siguiente columna.
fuente
Perl 5
-p00-MList::Util=max, 148 bytesTIO
Cómo
s/(\S+) (\S+) (.*) /...;''/ge;, las banderas de sustitución evalúan el/gbucle/e, el reemplazo se evalúa como entrada vacía de la línea de compensación / variable predeterminada$a{$1}=max$a{$1},length($h{$2}{$1}.=$3), autovivifica un mapa% h del mapa cuyas claves de primer nivelysegundo nivelxy concatena la cadena$3al valor, obtiene la longitud y autovivifica un segundo mapa% a cuyas teclasxy valor el máximo de longitud sobre la columna (x)for$y(sort{$b-$a}keys%h){...;say""}, para los índices de fila$yen claves de orden%hnumérico inverso,say""al final para imprimir una nueva líneamap{...}sort{$a-$b}keys%a, para el índice de columna$_en claves% a ordenado numéricamenteprintf"%-$a{$_}s",$h{$y}{$_}, imprimir cadena alineada a la izquierda con ancho de columnafuente
Limpio ,
212206 bytesPruébalo en línea!
fuente