У моих детей есть алфавитный коврик для игры, примерно такой:
После нескольких месяцев, когда плитки коврика были расположены в случайном порядке, я устала и разместила все плитки коврика, сгруппированные по секциям в соответствии с их фоновыми цветами. Итак, если буквы представляют цвет фона, я получил коврик, как это:
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
Потому что плитки цвета А не сгруппированы только в одну группу. Это также не будет действительным, потому что плитки не соединяются ни горизонтально, ни вертикально:
AB
BA
Соревнование
Учитывая двумерный массив символов в печатаемом диапазоне ASCII (не обязательно должен быть квадратным, если размер обоих измерений равен или больше 1), проверьте, представляет ли массив коврик, правильно сгруппированный по цветам (каждый отдельный символ в массиве представляет свой цвет). Входные данные могут быть в любом приемлемом формате, если они представляют собой двумерный массив символов (двумерный массив символов, массив строк одинаковой длины и т. Д.), А выходные данные должны представлять собой пару истинных и ложных значений (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
Мой коврик правильно сгруппирован по цветам
(Я все еще должен исправить эти границы ...)