Considera la seguente griglia standard di cruciverba 15 × 15 .
Possiamo rappresentarlo nell'arte ASCII usando #
per i blocchi e (spazio) per i quadrati bianchi.
# #
# #
#
# #
### ## ##
## #
# #
# ##
## ## ###
# #
#
# #
# #
Data una griglia di parole crociate nel formato di arte ASCII sopra, determinare quante parole contiene. (La griglia sopra ha 78 parole. Capita di essere il puzzle del New York Times dello scorso lunedì .)
Una parola è un gruppo di due o più spazi consecutivi che corrono verticalmente o orizzontalmente. Una parola inizia e termina con un blocco o il bordo della griglia e scorre sempre dall'alto verso il basso o da sinistra a destra, mai in diagonale o all'indietro. Nota che le parole possono estendersi per l'intera larghezza del puzzle, come nella sesta riga del puzzle sopra. Non è necessario che una parola sia connessa a un'altra parola.
Dettagli
- L'input sarà sempre un rettangolo contenente i caratteri
#
o(spazio), con le righe separate da una nuova riga (
\n
). Si può presumere che la griglia sia composta da 2 caratteri ASCII stampabili distinti anziché#
e.
- Si può presumere che esista una nuova riga finale opzionale. I caratteri spazio finale contano, poiché influiscono sul numero di parole.
- La griglia non sarà sempre simmetrica e potrebbe essere costituita da tutti gli spazi o tutti i blocchi.
- Il tuo programma dovrebbe teoricamente essere in grado di funzionare su una griglia di qualsiasi dimensione, ma per questa sfida non sarà mai più grande di 21 × 21.
- È possibile prendere la griglia stessa come input o come nome di un file contenente la griglia.
- Prendi l'input dagli argomenti stdin o della riga di comando e l'output su stdout.
- Se preferisci, puoi usare una funzione con nome invece di un programma, prendendo la griglia come argomento stringa e producendo un numero intero o una stringa tramite stdout o return di funzione.
Casi test
Ingresso:
# # #
Output:
7
(Ci sono quattro spazi prima di ciascuno#
. Il risultato sarebbe lo stesso se ogni segno numerico fosse rimosso, ma Markdown rimuove gli spazi da righe altrimenti vuote.)Ingresso:
## # ##
Output:
0
(le parole di una lettera non contano.)Ingresso:
###### # # #### # ## # # ## # #### #
Produzione:
4
Input: ( puzzle del Sunday NY Times del 10 maggio )
# ## # # # # # # # ### ## # # ## # # # ## # ## # ## # # ### ## # ## ## # ## ### # # ## # ## # ## # # # ## # # ## ### # # # # # # # ## #
Produzione:
140
punteggio
Vince il codice più breve in byte . Tiebreaker è il post più vecchio.