Debe escribir un programa o función que reciba un bloque de caracteres representados como una cadena y genere o devuelva una cadena similar en la que las letras adyacentes en el alfabeto estén conectadas.
Un ejemplo visual (en forma de input => output
):
b d b d
|\ /|
| \ / |
=> | X |
| / \ |
e |/ \e
c a c a
Detalles
- La entrada será una cadena que contiene espacios, líneas nuevas y exactamente una de cada una de las primeras
N
letras minúsculas.1 <= N <= 26
- Las líneas de la entrada se rellenarán con espacios creando un bloque rectangular completo.
- Cada par de letras adyacentes en el alfabeto estará en la misma fila, columna o línea diagonal y debe conectarse con una línea recta ascii usando
\ / | or -
. (La línea puede tener una longitud de 0.) Se deben manejar los siguientes tipos de superposiciones de dos líneas:
/ and \ become X | and - become + / and / become / \ and \ become \ | and | become | - and - become - [letter] and [anything] become [letter]
No se producirá ningún otro tipo de superposición de dos líneas.
- Si se superponen más de dos líneas, se garantizará que cualquiera de ellas sea una de las superposiciones válidas. (por ejemplo, el
[letter] / |
triplete nunca ocurrirá) - Además de cambiar los espacios en
\ / | - X and +
entrada y salida, debe ser idéntico. - La nueva línea final es opcional, pero debe ser la misma para la entrada y la salida.
- Este es el código de golf, por lo que gana la entrada más corta.
Ejemplos
Entrada:
b d
h gi
e f
c a
Salida:
b d
|\ /|
| \ / |
| X h+--gi
| / \ | |
|/ \e--f
c a
Entrada:
dk j
b l
c fg
a m
i h
e
Salida:
dk----j
/|| /
b / |l /
|X | \/
c \ fg/\
\|/\ \
a \ m
/| \
i-+----h
e
Entrada:
eti sqjh k p u cfm vb owgzyx rnd la
Salida:
eti--sqjh-k--p--u--cfm-vb-owgzyx-rnd-la
Entrada:
a
Salida:
a
/
y-
solapamientos no válidosX
y+
(/ \ - and |
) no puede producirse en la misma posición.Respuestas:
Perl, 219
Algunas mejoras aún pueden ser posibles.
Trate de mí .
fuente
JavaScript (ES6) 246
266 280 285 307Bastante voluminoso ...
Una función con string param y que devuelve la cadena modificada. Una nueva línea final es opcional a menos que la entrada sea solo 1 fila (necesito una nueva línea para encontrar la fila len)
Solo para hacer feliz a alguien
Más legible
Prueba en la consola Firefox / FireBug
Salida
fuente
341
caracteres.