Đây là một viên ruby nghệ thuật ASCII đơn giản :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
Là một thợ kim hoàn cho Tập đoàn Đá quý ASCII, công việc của bạn là kiểm tra những viên hồng ngọc mới mua và để lại một ghi chú về bất kỳ khiếm khuyết nào bạn tìm thấy.
May mắn thay, chỉ có 12 loại khiếm khuyết là có thể, và nhà cung cấp của bạn đảm bảo rằng không có viên ruby nào có nhiều hơn một khuyết điểm.
12 khuyết điểm tương ứng với sự thay thế của một trong 12 nội _
, /
hoặc \
nhân vật của ruby với một nhân vật không gian ( ). Chu vi bên ngoài của một viên hồng ngọc không bao giờ có khuyết điểm.
Các khiếm khuyết được đánh số theo đó nhân vật bên trong có một khoảng trống ở vị trí của nó:
Vì vậy, một viên hồng ngọc có khuyết điểm 1 trông như thế này:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Một viên hồng ngọc có khuyết tật 11 trông như thế này:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
Đó là cùng một ý tưởng cho tất cả các khiếm khuyết khác.
Thử thách
Viết chương trình hoặc hàm lấy chuỗi của một viên ruby có khả năng bị lỗi. Số khiếm khuyết nên được in hoặc trả lại. Số khuyết tật là 0 nếu không có khuyết tật.
Lấy đầu vào từ tệp văn bản, stdin hoặc đối số hàm chuỗi. Trả lại số khiếm khuyết hoặc in nó ra thiết bị xuất chuẩn.
Bạn có thể cho rằng viên ruby có dòng mới. Bạn không thể cho rằng nó có bất kỳ dấu cách hoặc dòng mới nào.
Mã ngắn nhất tính bằng byte thắng. ( Bộ đếm byte tiện dụng. )
Các trường hợp thử nghiệm
13 loại hồng ngọc chính xác, tiếp theo là sản lượng dự kiến của chúng:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12