Вот простой ASCII арт рубин :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
Как ювелир для ASCII Gemstone Corporation, ваша работа заключается в осмотре недавно приобретенных рубинов и оставлении записки о любых найденных вами дефектах.
К счастью, возможны только 12 типов дефектов, и ваш поставщик гарантирует, что ни один рубин не будет иметь более одного дефекта.
В 12 дефектов соответствуют замене одного из 12 внутренних _
, /
или \
персонажей рубина с символом пробела ( ). Внешний периметр рубина никогда не имеет дефектов.
Дефекты нумеруются в соответствии с тем, какой внутренний символ имеет место на своем месте:
Итак, рубин с дефектом 1 выглядит так:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Рубин с дефектом 11 выглядит так:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
Это та же идея для всех других дефектов.
Вызов
Напишите программу или функцию, которая принимает строку единственного, потенциально дефектного рубина. Номер дефекта должен быть распечатан или возвращен. Номер дефекта равен 0, если дефекта нет.
Возьмите ввод из текстового файла, стандартного ввода или аргумента строковой функции. Верните номер дефекта или распечатайте его на стандартный вывод.
Вы можете предположить, что у рубина есть завершающий символ новой строки. Вы не можете предполагать, что в нем есть завершающие пробелы или начальные символы новой строки.
Самый короткий код в байтах побеждает. ( Удобный счетчик байтов. )
Тестовые случаи
13 точных типов рубинов, за которыми непосредственно следует ожидаемый результат:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12