Oto prosty rubin artystyczny ASCII :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
Jako jubiler dla ASCII Gemstone Corporation, Twoim zadaniem jest sprawdzenie nowo nabytych rubinów i pozostawienie notatki o wszelkich znalezionych wadach.
Na szczęście możliwe jest tylko 12 rodzajów wad, a twój dostawca gwarantuje, że żaden rubin nie będzie miał więcej niż jednej wady.
W 12 wady odpowiada zastąpieniu jednego z 12 wewnętrzną _
, /
lub \
znaków rubinu z spacji ( ). Zewnętrzny obwód rubinu nigdy nie ma wad.
Wady są ponumerowane, zgodnie z którymi wewnętrzny charakter ma w miejscu miejsce:
Rubin z wadą 1 wygląda następująco:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Rubin z wadą 11 wygląda następująco:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
To ten sam pomysł dla wszystkich innych wad.
Wyzwanie
Napisz program lub funkcję, która pobiera ciąg jednego, potencjalnie wadliwego rubinu. Numer wady należy wydrukować lub zwrócić. Numer wady wynosi 0, jeśli nie ma wady.
Weź dane wejściowe z pliku tekstowego, standardowego wejścia lub argumentu funkcji łańcuchowej. Zwróć numer usterki lub wydrukuj go na standardowe wyjście.
Możesz założyć, że rubin ma końcową nową linię. Być może nie przyjąć, że ma jakieś wiodące spacje lub znaki nowej linii.
Najkrótszy kod w bajtach wygrywa. ( Poręczny licznik bajtów. )
Przypadki testowe
13 dokładnych rodzajów rubinów, a następnie bezpośrednio oczekiwany wynik:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12