Aquí hay un simple arte rubí ASCII :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
Como joyero de ASCII Gemstone Corporation, su trabajo es inspeccionar los rubíes recién adquiridos y dejar una nota sobre cualquier defecto que encuentre.
Afortunadamente, solo son posibles 12 tipos de defectos, y su proveedor garantiza que ningún rubí tendrá más de un defecto.
Los 12 defectos corresponden a la sustitución de uno de los 12 internos _
, /
o \
personajes de la rubí con un carácter de espacio ( ). El perímetro exterior de un rubí nunca tiene defectos.
Los defectos están numerados de acuerdo con qué carácter interno tiene un espacio en su lugar:
Entonces un rubí con defecto 1 se ve así:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Un rubí con defecto 11 se ve así:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
Es la misma idea para todos los demás defectos.
Reto
Escriba un programa o función que tome la cadena de un único rubí potencialmente defectuoso. El número de defecto debe imprimirse o devolverse. El número de defecto es 0 si no hay ningún defecto.
Tome la entrada de un archivo de texto, stdin o un argumento de función de cadena. Devuelva el número de defecto o imprímalo en stdout.
Puede suponer que el rubí tiene una nueva línea final. Es posible que no asuma que no tiene ningún saltos de línea finales espacios o líderes.
El código más corto en bytes gana. ( Práctico contador de bytes ) .
Casos de prueba
Los 13 tipos exactos de rubíes, seguidos directamente por su producción esperada:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12