Напишіть програму або функцію, яка містить текстову сітку розміром 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
(Зверніть увагу, що поступальна симетрія тут не грає.)
Виведіть помилкове значення, якщо сітка не має однієї з згаданих вище симетрій. наприклад, найперша сітка прикладу.
Виграє найкоротший код у байтах.