El reto
Dada una cadena 2D que representa el fondo de un bote como entrada, debe determinar si el bote flotará o no. Esta cadena 2D puede estar en el formato que sea más conveniente. (Cadena con líneas nuevas, lista de cadena, lista de lista de caracteres, etc.) Imprima un valor verdadero si flotará y un valor falso si se hunde.
Un bote se volcará si el fondo tiene una densidad inconsistente, por lo que cada carácter debe ser el mismo. Además, si un barco tiene grandes agujeros en él, representados por espacios, se hundirá, por lo que su barco no debe tener agujeros con un área mayor que 4. Aquí hay un ejemplo:
########
# ####
########
# ## ##
# #####
########
Este bote es válido porque el hoyo más grande tiene un área de 4. Este bote:
########
########
# ##
# #####
########
no es válido porque tiene un agujero con un área de 7. Puede suponer con seguridad que el exterior de cada entrada será un rectángulo sólido sin agujeros. Aquí hay algunas pruebas más:
$$$$$$$$
***$$$$$
***$$$$$
***$$$$$
$$$$$$$$
Invalid density. Sink.
%%%%%%%%
% % %
%%%%% %
% % %
%%%%%%%%
None of the holes are larger than 4. Float.
OOOOOOOO
OOOOOOO
OOOOOOOO
OOOOOOOO
OOOOOOOO
The outside border is not solid. Undefined.
&&&&&&&&&&&&&
& & & & & & &
&& & & & & &&
& & & & & & &
&& & & & & &&
& & & & & & &
&&&&&&&&&&&&&
Although I would not be comfortable riding in this boat myself,
none of the holes are larger than 4. It floats.
@@@@@
@ @
@ @
@ @
@@@@@
It sinks.
Reglas
- IO puede estar en cualquier formato razonable.
- Se aplican lagunas estándar.
- La respuesta más corta en bytes gana.
- La cadena dada consistirá completamente en ASCII imprimible.
fuente
&
barco existeRespuestas:
Matlab, 106 bytes
La entrada es una matriz de caracteres, por ejemplo, para el primer caso de prueba:
Explicación:
fuente