Considérez la grille de mots croisés standard 15 × 15 suivante .
Nous pouvons représenter cela dans l'art ASCII en utilisant #
pour les blocs et (espace) pour les carrés blancs.
# #
# #
#
# #
### ## ##
## #
# #
# ##
## ## ###
# #
#
# #
# #
Étant donné une grille de mots croisés au format ASCII ci-dessus, déterminez le nombre de mots qu'il contient. (La grille ci-dessus contient 78 mots. Il s'agit du puzzle du New York Times de lundi dernier .)
Un mot est un groupe de deux espaces consécutifs ou plus s'étendant verticalement ou horizontalement. Un mot commence et se termine par un bloc ou le bord de la grille et court toujours de haut en bas ou de gauche à droite, jamais en diagonale ou en arrière. Notez que les mots peuvent s'étendre sur toute la largeur du puzzle, comme dans la sixième rangée du puzzle ci-dessus. Un mot n'a pas besoin d'être connecté à un autre mot.
Détails
- L'entrée sera toujours un rectangle contenant les caractères
#
ou(espace), avec des lignes séparées par une nouvelle ligne (
\n
). Vous pouvez supposer que la grille est composée de 2 caractères ASCII imprimables distincts au lieu de#
et.
- Vous pouvez supposer qu'il existe une nouvelle ligne facultative. Les caractères d'espace de fin comptent, car ils affectent le nombre de mots.
- La grille ne sera pas toujours symétrique et il peut s'agir de tous les espaces ou de tous les blocs.
- Votre programme devrait théoriquement pouvoir fonctionner sur une grille de n'importe quelle taille, mais pour ce défi, il ne sera jamais plus grand que 21 × 21.
- Vous pouvez prendre la grille elle-même comme entrée ou le nom d'un fichier contenant la grille.
- Prenez les entrées de stdin ou des arguments de ligne de commande et sortez vers stdout.
- Si vous préférez, vous pouvez utiliser une fonction nommée au lieu d'un programme, en prenant la grille comme argument de chaîne et en sortant un entier ou une chaîne via stdout ou retour de fonction.
Cas de test
Contribution:
# # #
Sortie:
7
(Il y a quatre espaces avant chacun#
. Le résultat serait le même si chaque signe numérique était supprimé, mais Markdown supprime les espaces des lignes autrement vides.)Contribution:
## # ##
Sortie:
0
(les mots d'une lettre ne comptent pas.)Contribution:
###### # # #### # ## # # ## # #### #
Production:
4
Entrée: ( puzzle du Sunday NY Times du 10 mai )
# ## # # # # # # # ### ## # # ## # # # ## # ## # ## # # ### ## # ## ## # ## ### # # ## # ## # ## # # # ## # # ## ### # # # # # # # ## #
Production:
140
Notation
Le code le plus court en octets gagne. Tiebreaker est le plus ancien poste.