Напишіть програму або функцію, яка містить текстову сітку розміром 4 × 4, що складається з точно 4 A
-х, 4 B
-х, 4 C
-х та 4 D
-х, таких як:
ACDC
BBCA
BADD
ABCD
Вони ABCD
можуть бути в будь-якій домовленості, але завжди їх буде 4. Ви можете припустити, що введення дійсне. За бажанням ви також можете припустити, що у нього є зворотний новий рядок та / або що він є одним рядком у порядку читання, наприклад ACDCBBCABADDABCD
. Ви також можете замінити символи ABCD
на 0123
або, 1234
відповідно, за бажанням (але це все).
Виведіть правильне значення, якщо текстова сітка має будь-яку форму відбивної або обертової симетрії. Конкретно:
Якщо є центральна горизонтальна лінія симетрії. напр
BACD BACD BACD \___ bottom mirrors top BACD /
Якщо є центральна вертикальна лінія симетрії. напр
BCCB DAAD CAAC BDDB \/___ right mirrors left
Якщо є діагональна лінія симетрії (в будь-якому напрямку). напр
___ diagonally mirrored / ABDC BACD DCAB CDBA \___ diagonally mirrored
Якщо є ротаційна симетрія на 90 °. напр
BDAB ACCD same if rotated 90 degrees (or 180 or 270) DCCA BADB
Якщо є ротаційна симетрія на 180 °. напр
DBCA BDCA same if rotated 180 degrees ACDB ACBD
(Зверніть увагу, що поступальна симетрія тут не грає.)
Виведіть помилкове значення, якщо сітка не має однієї з згаданих вище симетрій. наприклад, найперша сітка прикладу.
Виграє найкоротший код у байтах.