Similar a esta pregunta , ¡pero esta es una variación de crucigramas!
En lugar de solo una letra por cuadrícula, puede tener una o dos .
Entrada:
- Una matriz 2D, o lo que sea que funcione en tu idioma.
- Puede asumir entradas válidas
- Cualquier tamaño de matriz debe funcionar
Salida:
- Un conjunto de todas las palabras.
- De un lado a otro
- Todas las palabras deben estar unidas, es decir, vinculadas en una cadena ininterrumpida de palabras (si no devuelve falso)
- Las palabras deben ser al menos dos cuadrados de cuadrícula , no letras
Ejemplo:
[["", "wo", "r", "k"],
[ "", "r", "", ""],
[ "he", "l", "lo", ""],
[ "", "d", "ad", ""]]
Devoluciones:
["work", "world", "hello", "load", "dad"]
Ejemplo:
[["he", "ll", "o"],
[ "", "", ""],
[ "wo", "r", "ld"]]
Devoluciones:
false
Este es el código más rápido , así que lo ejecutaré en Windows 7 con 2.5 ghz y 16 gb de ram. Si su código es realmente esotérico, proporcione un enlace al compilador para que realmente pueda ejecutarlo.
string
fastest-code
crossword
epicbob57
fuente
fuente

Respuestas:
Python 3
Uso:
La función toma una matriz de matriz de cadenas como entrada:
crosswords( [["", "wo", "r", "k"], [ "", "r", "", ""], [ "he", "l", "lo", ""], [ "", "d", "ad", ""]])Devuelve la cadena.
falsecuando la conectividad devuelve múltiples etiquetas. Devuelve una matriz de palabras válidas de lo contrario.Lo cronometré con
timeit,time.time()y usando el comando de la consola,timepero no sé cuál usar o cuál publicar aquí.fuente