Inspirado por esta pregunta sobre cómo empacar en este formato.
Ocasionalmente veo un crucigrama completo y, como soy, no me molesto en averiguar cuáles fueron las soluciones a las pistas.
Entrada:
- Una cadena 2D (cualquier formato, nueva línea separada, lista 2d, etc.)
- Los cuadrados en blanco se representarán con un
(carácter de espacio)
- Cualquier otro cuadrado estará en minúscula.
- Puede suponer que la entrada se rellenará con espacios para formar un rectángulo
Salida:
- Cada palabra encontrada
- Debes buscar palabras a lo largo y hacia abajo
- Las palabras tendrán al menos dos letras
- Si hay palabras duplicadas, debe emitirlas cada vez que aparecen
- No tienes que hacer ninguna validación
- Las palabras pueden salir en cualquier orden
- No hay reglas de formato estrictas
Casos de prueba:
word
e e
step
t d
word, step, west, reed
---
pies
not
no
wasp
pies, not, no, wasp, in, eons, stop
---
igloo
n
word
igloo, word, on
d
, lo que hace que laj
unión en las nuevas líneas, que aún están cortadas porc ... )
CJam, 14 bytes
Un bloque sin nombre que espera una lista de cadenas (rellenas) en la parte superior de la pila y deja una lista de palabras en su lugar.
Pruébalo aquí.
Explicación
fuente
JavaScript (ES6), 83 bytes
fuente
Pyth , 18 bytes
Pruébalo en línea!
Entrada de muestra:
Salida de muestra:
Cómo funciona:
fuente
Haskell, 58 bytes
Ejemplo de uso:
f ["pies"," not"," no","wasp"]
->["pies", "not", "no", "wasp", "in", "eons", "stop"]
.Cómo funciona: divide cada una de las líneas de la entrada y su transposición en espacios en una sola lista de palabras. Mantenga los que coinciden
(_:_:_)
, es decir, tienen al menos dos letras.fuente
C ++ 14,
209207201 bytesCantidad ridículamente alta de bytes ... pero bueno. Matriz de transposición, cadena dividida. Fácil. Lástima que no haya una función nativa para transponer
Sin golf:
Cómo usarlo (tenga en cuenta que debe aplicar el relleno como dice la pregunta):
fuente
Pyke, 9 bytes
Pruébalo aquí!
O 7 bytes prettified
Pruébalo aquí!
fuente