У меня серьезная проблема. У меня есть несколько текстовых файлов, в которых я храню свои очень важные номера - все важные! И двойки, и тройки ..
Эти числа были настолько важны, что я не мог доверить их этим новомодным десятичным или двоичным системам счисления. Я сохранил каждое число в одинарном виде, так:
+--+
| |
+---+ +----+ |
| | | |
+---+ +-------+
~/two.txt
Просто и надежно: два ASCII-цикла для числа 2. К сожалению, эти вещи, как правило, запутываются со временем, и теперь мне сложно выяснить, сколько циклов в каждом файле. Вот несколько примеров, которые я разработал вручную:
Один:
+---+
| |
+--+ |
| |
+--+ |
| |
| |
| |
+--+ +--+
| |
+---------+
Три:
+---------+
| +-----+ |
| | +-+ | |
| | | | | |
| | +-+ | |
| +-----+ |
+---------+
Четыре:
+--------------+
| +--+ +--+ |
| | | | | |
+-|-----|-----|----+
| | | | | | | |
| +--+ +--+ +--+ |
+------------------+
+------------+
| |
+-----+ +-----+ |
| | | |
+-----|-----------+ | |
| | +--+ | | | |
+-+ +--|--|--+ +---------+
| | +-+ | | |
+------+ | | | |
+-------+ | |
|| | |
|+-----+
| |
+---+
5:
+--------+ +--------+ +--------+
| | | | | |
| +--|-----+ +--|-----+ |
| | | | | | | | | |
+-----|--+ +-----|--+ +--------+
| | | |
+--------+ +--------+
Можете ли вы помочь мне сосчитать мои петли?
Вот правила:
- Так как я храню все в ASCII-кодированном формате, для меня очень важна эффективность использования пространства. Поэтому это код гольф. Победит самая маленькая программа в байтах.
- Петли нарисованы с символами +, -, |. Каждый угол в цикле рисуется однозначно: ровно один из символов выше и ниже + будет |, а ровно один справа или слева - -. Два знака + никогда не соседствуют.
- Пряди могут проходить друг над другом. Когда нити пересекаются, вы сможете сразу увидеть нить «под» с обеих сторон нити «над».
- Ваша программа должна взять строковое представление цикла (либо из stdin, либо в качестве параметра функции) и создать число (либо в stdout, либо в качестве возвращаемого значения).
- Длина линий может быть неодинаковой на чертеже петли, и в каждой строке могут быть пробелы.
- Вы можете предположить, что на входе есть хотя бы один цикл.
Я рассчитываю на вас!
+
?