У моїх діточок є килимок з алфавітом, з яким можна грати:
Після місяців, коли плитки килимка були випадково розміщені, я втомився і розмістив усі плитки килимка, згруповані по секціях відповідно до їх кольорів фону. Отже, якщо букви представляють колір тла, у мене вийшов такий килимок:
AABBCDDDE
ABBCCCDEE
ABCCCCDDE
AACCCDDEE
AAAACCCCE
AAAAAACCC
Так, для кольорів A, B, C, D і E завжди є спосіб з'єднати всі плитки одним і тим же кольором фону або горизонтально, або вертикально в килимку. Саме так я називаю килимок, правильно згрупований за кольорами . Групи попереднього прикладу можна побачити в наступних таблицях:
AA
A
A
AA
AAAA
AAAAAA
BB
BB
B
C
CCC
CCCC
CCC
CCCC
CCC
DDD
D
DD
DD
E
EE
E
EE
E
Крім того, існує лише одна група для кожного кольору, тому це не буде дійсним:
ABA
ABA
Оскільки плитка кольору A не згрупована лише в одній групі. Це також не буде дійсним, оскільки плитки не з'єднуються ні горизонтально, ні вертикально:
AB
BA
Змагання
Враховуючи двовимірний масив символів у діапазоні ASCII для друку (не потрібно бути квадратним до тих пір, поки розмір обох розмірів дорівнює або перевищує 1), перевірте, чи масив представляє килимок, правильно згрупований за кольорами (кожен різний символ у масиві являє собою інший колір). Введення може бути в будь-якому розумному форматі до тих пір, поки воно представляє двовимірний масив символів (2D char масив, масив рядків однакової довжини тощо), а вихід повинен бути парою значень truthy та falsey (0 / 1, 't' / 'f', true / false, незалежно від того, доки щось буде повернуто і значення, що повертаються, узгоджуються вхідними даними).
Це код-гольф, тому може виграти найкоротша програма / функція / метод / лямбда для кожної мови!
Приклади
A truthy
AB
AB truthy
AB
BA falsey
ABCDE truthy
ABCDC falsey
**::dd22
***:d222
*:::::22 truthy
$$$%%%&&
$$%%&&&&
&&$$$%&& falsey
AABBCDDDE
ABBCCCDEE
ABCCCCDDE
AACCCDDEE
AAAACCCCE
AAAAAACCC truthy
AABB
ABBA
AAAA truthy
AAAB
AAAA
AAAA truthy
Мій килимок правильно згрупований за кольорами
(Мені все одно доводиться фіксувати ці межі ...)