El reto
Dada una lista de palabras ["Programming", "Puzzles", "Code", "Golf"]
, las palabras son de estilo crucigrama:
Programación tu z z G l C oda ls F
El algoritmo
- Tienes que procesar la lista en el orden dado.
- Las palabras se imprimen en orientaciones alternas, comenzando horizontalmente .
Las dos palabras se cruzan en la primera letra de la primera palabra, que también está presente en la segunda palabra. Si esta letra aparece varias veces en la segunda palabra, tome la primera.
Ejemplo : se
["no", "on"]
convierte en:o n o
y no
n o n
Notas adicionales
- Las palabras adyacentes en la lista tendrán al menos una letra común.
["Hi", "there"]
No es una entrada válida. - Las palabras nunca chocarán. Siempre habrá suficiente espacio para imprimir una palabra en la primera intersección posible.
["Hello", "there", "end", "hello"]
no es una entrada válida - La coincidencia distingue entre mayúsculas y minúsculas.
- Las palabras pueden expandirse hacia la izquierda y hacia arriba.
- Las letras de las palabras horizontales deben estar separadas por un espacio.
- La lista de entrada contendrá al menos dos palabras.
- Todas las palabras coincidirán con la expresión regular:
[A-Za-z]+
- Puede imprimir tantos espacios en blanco finales o nuevas líneas como desee, siempre que las palabras estén encadenadas correctamente.
- Por otro lado, no puede agregar espacios en blanco iniciales adicionales. La palabra que más flota a la izquierda tiene cero espacios iniciales, las otras líneas tienen tantos espacios iniciales que todas se alinean correctamente.
- Su programa debe ser capaz de manejar una cantidad arbitraria de palabras
Reglas
- Función o programa completo permitido.
- Reglas predeterminadas para entrada / salida.
- Se aplican lagunas estándar .
- Este es el código de golf , por lo que gana el conteo de bytes más bajo. Tiebreaker es una presentación anterior.
Casos de prueba
Lista de entrada en la primera línea, la salida comienza en la segunda línea.
["Pila", "Intercambio"] mi X C h Tachuela S norte sol mi
["Este", "sitio", "graduado", "finalmente"] F es n T his graduado le l y
¡Feliz codificación!
site
ygraduated
est
Respuestas:
JavaScript (ES6) 253
Como una función anónima con un parámetro de matriz
fuente
ANSI C, 385
390caracteresLlámalo así:
./crossword This site graduated finally
Versión sin golf:
Gracias tucuxi por los consejos!
fuente
a++)N+=strlen(v[a])
=>)N+=strlen(v[a++])
char F[W][H],*p
=>char*p,F[W][H]
for
, reemplazark++)putchar(F[k][l]
con)putchar[k++][l]