Imagine una matriz bidimensional de valores booleanos, donde los 0 representan cuadrados de hierba en un terreno rectangular y los 1 representan cercas.
Escriba una función que acepte la matriz 2D como entrada y determine si puede viajar desde cualquier área de hierba a cualquier otra área de hierba, utilizando solo movimientos norte / este / oeste / sur, sin toparse con una cerca.
Si cualquier área de hierba en la matriz está completamente encerrada por cercas (lo que significa que no puede viajar N / E / W / S para llegar a cualquier otra área de hierba en la matriz), la función debería devolver falso; de lo contrario, debería volver verdadero.
A continuación hay dos matrices de muestra que puede usar como entradas, aunque su función debería poder manejar no solo estas, sino también cualquier matriz 2D de valores booleanos:
0 0 0 0 0
0 1 0 0 0
0 1 1 1 1
0 0 0 0 0
0 0 0 1 1
(should return true)
0 1 0 1 0
0 1 1 0 0
0 0 0 0 0
0 0 0 1 0
1 1 1 1 0
(should return false, since the middle 0 in the top row is fully enclosed)
El código de trabajo más corto gana. Elegiré al ganador después de que haya pasado una semana o no haya habido nuevos envíos en 24 horas.
1 1 1? 1 0 1; 1 1 1? Hay una celda de hierba en el centro. Visualmente, la celda de hierba en el centro está completamente encerrada por cercas, pero, según su definición, no lo está.