Розглянемо наступну стандартну сітку кросвордів розміром 15 × 15 .
Ми можемо представити це в мистецтві ASCII, використовуючи #
для блоків та (пробіл) для білих квадратів.
# #
# #
#
# #
### ## ##
## #
# #
# ##
## ## ###
# #
#
# #
# #
Надавши сітку кросворду у форматі мистецтва ASCII вище, визначте, скільки слів він містить. (Наведена вище сітка має 78 слів. Це, мабуть, головоломка New York Times минулого понеділка .)
Слово - це група з двох або більше послідовних пробілів, що працюють вертикально або горизонтально. Слово починається і закінчується блоком або краєм сітки і завжди проходить зверху вниз або вліво-вправо, ніколи не по діагоналі або назад. Зауважте, що слова можуть охоплювати всю ширину головоломки, як у шостому ряду головоломки вище. Слово не повинно бути пов'язане з іншим словом.
Деталі
- Введенням завжди буде прямокутник, що містить символи
#
або(пробіл), рядки розділені новим рядком (
\n
). Ви можете припустити, що сітка складається з будь-яких 2 відмінних символів для друку ASCII замість#
та.
- Ви можете припустити, що є необов'язковий затримка нового рядка. Символи пробілів, що знаходяться в пробілі, НЕ рахуються, оскільки вони впливають на кількість слів.
- Сітка не завжди буде симетричною, і це можуть бути всі пробіли або всі блоки.
- Ваша програма теоретично повинна мати змогу працювати над сіткою будь-якого розміру, але для цього завдання вона ніколи не буде більше 21 × 21.
- Ви можете взяти саму сітку як вхід або назву файла, що містить сітку.
- Візьміть введення аргументів stdin або командного рядка та виведіть у stdout.
- Якщо ви віддаєте перевагу, ви можете використовувати іменовану функцію замість програми, приймаючи сітку як аргумент рядка та виводячи ціле число чи рядок через stdout або return return.
Тестові справи
Вхід:
# # #
Вихід:
7
(Перед кожним є чотири пробіли#
. Результат був би однаковий, якби кожен знак числа був видалений, але Маркдаун знімає пробіли з інших порожніх рядків.)Вхід:
## # ##
Вихід:
0
(Однолітерні слова не враховуються.)Вхід:
###### # # #### # ## # # ## # #### #
Вихід:
4
Вхід: ( пазл 10 травня в неділю NY Times )
# ## # # # # # # # ### ## # # ## # # # ## # ## # ## # # ### ## # ## ## # ## ### # # ## # ## # ## # # # ## # # ## ### # # # # # # # ## #
Вихід:
140
Оцінка балів
Виграє найкоротший код у байтах . Tiereaker - найстаріший пост.