Rozważ następującą standardową siatkę krzyżówek 15 × 15 .
Możemy to przedstawić w sztuce ASCII za pomocą #
bloków i (spacji) białych kwadratów.
# #
# #
#
# #
### ## ##
## #
# #
# ##
## ## ###
# #
#
# #
# #
Biorąc pod uwagę siatkę krzyżówek w formacie graficznym ASCII powyżej, określ, ile słów zawiera. (Powyższa tabela ma 78 słów. Zdarza się, że jest to łamigłówka New York Times z ostatniego poniedziałku .)
Słowo to grupa dwóch lub więcej następujących po sobie spacji biegnących pionowo lub poziomo. Słowo zaczyna się i kończy blokiem lub krawędzią siatki i zawsze biegnie od góry do dołu lub od lewej do prawej, nigdy po przekątnej lub do tyłu. Pamiętaj, że słowa mogą obejmować całą szerokość układanki, tak jak w szóstym rzędzie układanki powyżej. Słowo nie musi być połączone z innym słowem.
Detale
- Dane wejściowe zawsze będą prostokątem zawierającym znaki
#
lub(spację), z wierszami oddzielonymi znakiem nowej linii (
\n
). Możesz założyć, że siatka składa się z 2 różnych drukowalnych znaków ASCII zamiast#
i.
- Możesz założyć, że istnieje opcjonalny znak nowej linii. Znaki końcowe spacji są liczone, ponieważ wpływają na liczbę słów.
- Siatka nie zawsze będzie symetryczna i mogą to być wszystkie spacje lub wszystkie bloki.
- Twój program powinien teoretycznie być w stanie pracować na siatce dowolnego rozmiaru, ale w przypadku tego wyzwania nigdy nie będzie większy niż 21 × 21.
- Możesz wziąć samą siatkę jako dane wejściowe lub nazwę pliku zawierającego siatkę.
- Weź dane wejściowe z argumentów stdin lub wiersza poleceń i wyślij je na standardowe wyjście.
- Jeśli wolisz, możesz użyć funkcji o nazwie zamiast programu, biorąc siatkę za argument ciągu i wyprowadzając liczbę całkowitą lub ciąg znaków przez stdout lub return funkcji.
Przypadki testowe
Wejście:
# # #
Wyjście:
7
(Przed każdym są cztery spacje#
. Wynik byłby taki sam, gdyby każdy znak liczbowy został usunięty, ale Markdown usuwa spacje z innych pustych linii).Wejście:
## # ##
Wyjście:
0
(Słowa jednoliterowe się nie liczą.)Wejście:
###### # # #### # ## # # ## # #### #
Wynik:
4
Dane wejściowe: ( układanka z niedzieli NY Times z 10 maja )
# ## # # # # # # # ### ## # # ## # # # ## # ## # ## # # ### ## # ## ## # ## ### # # ## # ## # ## # # # ## # # ## ### # # # # # # # ## #
Wynik:
140
Punktacja
Najkrótszy kod w bajtach wygrywa. Tiebreaker to najstarszy post.