Це питання натхнене обкладинкою книги "Годель, Ешер, Бах":
Завдання тут полягає в тому, щоб написати функцію, яка визначає, чи можуть три задані букви створити 3D-скульптуру, яку можна прочитати з трьох сторін.
Для цієї вправи можна використовувати лише букви 26 5px * 5px:
Або у двійковій формі (від A до 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
Скульптура утворена трьома літерами у такому порядку:
- лист один зверху,
- літеру два зліва
- літера три справа
- нижня частина літери одна прив’язана до верхньої частини другої літери.
Приклад:
Ваша функція може приймати як введення три великі літери (три символи або три рядки однієї літери) та виводити булеву (справжню / помилкову або 0/1), що повідомляє, чи може існувати відповідна скульптура.
Приклад:
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)
Примітка: ви можете повернути справжнє, навіть якщо скульптура містить "літаючі пікселі" (кубики або група кубів, які не прикріплені до нічого).
Застосовуються стандартні лазівки.
Точніше, ви не можете використовувати зовнішній вхід, крім трьох букв, і не можете жорстко кодувати 17576 можливих відповідей у своєму вихідному коді
Найкоротша відповідь символами будь-якої мови виграє!
Приємно :)