Le défi
Étant donné une chaîne 2d représentant le fond d'un bateau en entrée, vous devez déterminer si le bateau flottera ou non. Cette chaîne 2D peut être dans le format le plus pratique. (Chaîne avec sauts de ligne, liste de chaînes, liste de listes de caractères, etc.) Imprimez une valeur véridique si elle flotte, et une valeur falsey si elle coule.
Un bateau basculera si le fond a une densité irrégulière, donc chaque caractère de doit être le même. De plus, si un bateau a de gros trous, représentés par des espaces, il coulera, donc votre bateau ne doit pas avoir de trous d'une superficie supérieure à 4. Voici un exemple:
########
# ####
########
# ## ##
# #####
########
Ce bateau est valide car le plus grand trou a une superficie de 4. Ce bateau:
########
########
# ##
# #####
########
n'est pas valide car il possède un trou d'une superficie de 7. Vous pouvez supposer en toute sécurité que l'extérieur de chaque entrée sera un rectangle plein sans trous. Voici quelques tests supplémentaires:
$$$$$$$$
***$$$$$
***$$$$$
***$$$$$
$$$$$$$$
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.
Règles
- IO peut être dans n'importe quel format raisonnable.
- Des échappatoires standard s'appliquent.
- La réponse la plus courte en octets l'emporte.
- La chaîne donnée consistera entièrement en ASCII imprimable.
&
bateau existeRéponses:
Matlab, 106 octets
L'entrée est une matrice de caractères, par exemple pour le premier cas de test:
Explication:
la source