Meine Kinder haben eine Alphabet-Matte zum Spielen:
Nach Monaten, in denen die Fliesen der Matte nach dem Zufallsprinzip platziert wurden, wurde ich müde und legte alle Fliesen der Matte abschnittsweise nach ihren Hintergrundfarben gruppiert. Wenn die Buchstaben die Hintergrundfarbe darstellen, habe ich eine Matte wie diese:
AABBCDDDE
ABBCCCDEE
ABCCCCDDE
AACCCDDEE
AAAACCCCE
AAAAAACCC
Für die Farben A, B, C, D und E gibt es also immer eine Möglichkeit, alle Kacheln mit derselben Hintergrundfarbe horizontal oder vertikal in der Matte zu verbinden. Das ist, was ich eine Matte nenne, die richtig nach Farben gruppiert ist . Sie können die Gruppen für das vorherige Beispiel in den folgenden Tabellen sehen:
AA
A
A
AA
AAAA
AAAAAA
BB
BB
B
C
CCC
CCCC
CCC
CCCC
CCC
DDD
D
DD
DD
E
EE
E
EE
E
Außerdem gibt es nur eine Gruppe für jede Farbe, sodass dies nicht gültig wäre:
ABA
ABA
Weil Farbe-A-Kacheln nicht nur in einer Gruppe gruppiert sind. Dies gilt auch nicht, da die Kacheln weder horizontal noch vertikal verbunden sind:
AB
BA
Die Herausforderung
Überprüfen Sie bei einem zweidimensionalen Array von Zeichen im druckbaren ASCII-Bereich (muss kein Quadrat sein, solange die Größe beider Dimensionen gleich oder größer als 1 ist), ob das Array eine nach Farben richtig gruppierte Matte darstellt (Jedes andere Zeichen im Array repräsentiert eine andere Farbe.) Die Eingabe kann in jedem vernünftigen Format erfolgen, sofern es sich um ein zweidimensionales Array von Zeichen handelt (2D-Zeichen-Array, Array von Zeichenfolgen mit derselben Länge usw.). Die Ausgabe muss aus zwei Wahrheits- und Falschwerten (0) bestehen / 1, 't' / 'f', true / false, egal, solange etwas zurückgegeben wird und die Rückgabewerte für alle Eingaben konsistent sind).
Das ist Code-Golf, also kann das kürzeste Programm / Funktion / Methode / Lambda für jede Sprache gewinnen!
Beispiele
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
Meine Matte richtig nach Farben gruppiert
(Ich muss noch diese Grenzen reparieren ...)