Câu hỏi này được lấy cảm hứng từ bìa của cuốn sách "Godel, Escher, Bach":
Thách thức ở đây là viết một hàm cho biết nếu ba chữ cái đã cho có thể tạo ra một tác phẩm điêu khắc 3D có thể được đọc từ ba mặt.
Đối với bài tập này, các chữ cái duy nhất bạn có thể sử dụng là 26 bitmap 5 5px * 5px:
Hoặc ở dạng nhị phân (A đến Z):
01110 11110 01111 11110 11111 11111 11111 10001 11111 11111 10001 10000 10001 10001 01110 11110 01110 11110 01111 11111 10001 10001 10001 10001 10001 11111
10001 10001 10000 10001 10000 10000 10000 10001 00100 00100 10010 10000 11011 11001 10001 10001 10001 10001 10000 00100 10001 10001 10001 01010 01010 00010
10001 11110 10000 10001 11100 11110 10011 11111 00100 00100 11100 10000 10101 10101 10001 10001 10001 11111 01110 00100 10001 01010 10001 00100 00100 00100
11111 10001 10000 10001 10000 10000 10001 10001 00100 10100 10010 10000 10001 10011 10001 11110 10011 10010 00001 00100 10001 01010 10101 01010 00100 01000
10001 11110 01111 11110 11111 10000 11111 10001 11111 11100 10001 11111 10001 10001 01110 10000 01111 10001 11110 00100 01110 00100 01010 10001 00100 11111
Tác phẩm điêu khắc được hình thành bởi ba chữ cái theo thứ tự sau:
- chữ cái trên đầu
- chữ cái hai bên trái
- chữ ba bên phải
- dưới cùng của chữ một được ràng buộc với đầu của chữ cái hai.
Thí dụ:
Hàm của bạn có thể chấp nhận làm đầu vào ba chữ cái viết hoa (ba ký tự hoặc ba chuỗi của một chữ cái) và xuất ra một giá trị boolean (đúng / sai hoặc 0/1) nếu tác phẩm điêu khắc tương ứng có thể tồn tại.
Thí dụ:
f("B","E","G") // true (because if you "sculpt out" B on top + E on the left + G on the right, and watch the three sides of the sculpture, you'll see exactly B, E and G as they are defined)
f("B","G","E") // false (because if you "sculpt out" B on top + G on the left + E on the right, and watch the three sides of the sculpture, you won't see a complete G and a complete E. Their shapes bother each other)
Lưu ý: bạn có thể trả về đúng ngay cả khi tác phẩm điêu khắc có chứa "pixel bay" (hình khối hoặc nhóm hình khối được gắn vào không có gì).
Tiêu chuẩn áp dụng.
Chính xác hơn, bạn không thể sử dụng đầu vào bên ngoài ngoài ba chữ cái và bạn không thể mã hóa 17576 câu trả lời có thể có trong mã nguồn của mình
Câu trả lời ngắn nhất trong các nhân vật trong bất kỳ ngôn ngữ chiến thắng!
Chúc vui vẻ :)