İşte basit bir ASCII sanat yakutu :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
ASCII Gemstone Corporation için bir kuyumcu olarak, işiniz yeni kazanılan yakutları incelemek ve bulduğunuz kusurlarla ilgili not bırakmak.
Neyse ki, sadece 12 tip hata mümkündür ve tedarikçiniz hiçbir yakutun birden fazla kusura sahip olmayacağını garanti eder.
12 kusurları 12 iç birinin yerine tekabül _
, /
ya da \
bir boşluk karakteri (Ruby karakter ). Bir yakutun dış çevresi asla kusurlu değildir.
Kusurlar, hangi iç karakterin yerinde bir boşluğa sahip olduğuna göre numaralandırılır:
Yani kusur 1 olan bir yakut şöyle görünür:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Hatalı bir yakut 11 şöyle görünür:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
Diğer tüm kusurlar için aynı fikir.
Meydan okuma
Tek, potansiyel olarak arızalı bir yakutun dizesini içine alan bir program veya işlev yazın. Hata numarası yazdırılmalı veya iade edilmelidir. Kusur yoksa, hata numarası 0'dır.
Bir metin dosyasından, stdin veya bir dize işlevi bağımsız değişkeninden girdi alın. Arıza numarasını döndürün veya stdout'a yazdırın.
Yakutun takip eden bir yeni hattı olduğunu varsayabilirsin. Sen olabilir değil herhangi boşluk veya lider yeni satır olduğunu varsayalım.
Bayt cinsinden en kısa kod kazanır. ( Kullanışlı bayt sayacı. )
Test Kılıfları
13 kesin yakut türü, ardından beklenen verim doğrudan geldi:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12