To pytanie jest inspirowane okładką książki „Godel, Escher, Bach”:
Wyzwanie polega na napisaniu funkcji, która mówi, czy trzy podane litery mogą wytworzyć rzeźbę 3D, którą można odczytać z trzech stron.
W tym ćwiczeniu jedynymi literami, których możesz użyć, są 26 bitmap * 5 pikseli * 5 pikseli:
Lub binarnie (od A do 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
Rzeźba składa się z trzech liter w następującej kolejności:
- litera pierwsza na górze,
- litera druga po lewej
- litera trzecia po prawej
- dolna część litery pierwszej jest związana z górą litery drugiej.
Przykład:
Twoja funkcja może przyjąć jako dane wejściowe trzy wielkie litery (trzy znaki lub trzy ciągi jednej litery) i wygenerować wartość logiczną (prawda / fałsz lub 0/1) informującą, czy odpowiednia rzeźba może istnieć.
Przykład:
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)
Uwaga: możesz zwrócić prawdę, nawet jeśli rzeźba zawiera „latające piksele” (kostki lub grupy kostek, które są przymocowane do niczego).
Obowiązują standardowe luki.
Mówiąc dokładniej, nie możesz używać zewnętrznych danych wejściowych poza trzema literami i nie możesz zakodować 17576 możliwych odpowiedzi w kodzie źródłowym
Najkrótsza odpowiedź w postaci w dowolnym języku wygrywa!
Baw się dobrze :)