Herausforderung
Bei einer ASCII-Kunstform müssen Sie herausfinden, ob die Form ein reguläres Sechseck ist oder nicht.
Sechsecke
Ein reguläres Sechseck wird nach zwei Regeln definiert:
- Es hat sechs Seiten
- Jede Seite hat die gleiche Anzahl von Zeichen
Die folgende Form ist beispielsweise regelmäßig, hat jedoch keine sechs Seiten und ist daher kein reguläres Sechseck :
B a a h
s a i d
y o u r
g a o t
In ähnlicher Weise hat die folgende Form sechs Seiten, hat jedoch Seiten unterschiedlicher Länge und ist daher kein reguläres Sechseck:
* *
* * *
* * * *
* * *
* *
Die folgende Form hat jedoch sechs Seiten und alle Seiten haben die gleiche Anzahl von Zeichen, sodass es sich um ein reguläres Sechseck handelt:
T h e
h e x a
g o n s a
r e c o
m i n
Regeln
Die Ausgabe sollte ein wahrer oder falscher Wert sein (wahr, wenn die Form ein reguläres Sechseck ist, falsch, wenn nicht).
Die Formen enthalten immer nur druckbare ASCII-Zeichen.
Der Rand der Form wird niemals Leerzeichen enthalten. In diesem Fall können Sie Falschgeld zurückgeben.
Vor und / oder nach der Form können beliebig viele Leerzeichen eingefügt werden.
Möglicherweise sind nicht alle Winkel in der Form gleich. Die folgende Form ist eine gültige Eingabe:
. . .
. . .
. . . . .
. . . .
. . .
Es wird ein falscher Wert zurückgegeben.
Alle Form-Eingaben erfolgen in einem durch Leerzeichen getrennten Raster. Die hexagonale Eingabe erfolgt in einem versetzten Raster (jede Zeile ist von der nächsten versetzt).
Beispiele
Wahrheit
Die folgenden Formen sollten wahrheitsgemäße Werte zurückgeben:
# _
+ + +
9 :
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
t h i s
i s
a h
e x
a g
o n
! ! ! !
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
Falsey
Das Folgende sollte falsche Werte zurückgeben
r e c t a
n g l e s
h e l l o
w o r l d s
t h i s i s b
e t a d e c
a y n o w
*
* *
* * *
.....
.......
.........
.......
.....
Diese Form befindet sich nicht in einem durch Leerzeichen getrennten Raster und ist nicht versetzt.
* * * *
---------
* * * * * *
-------------
* * * * * *
---------
* * * *
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
Bei der Eingabe einzelner Zeichen kann Ihr Programm entweder "Wahr" oder "Falsch" ausgeben:
&
Gewinnen
Das kürzeste Programm in Bytes gewinnt.
5 6 7\n8 9 0 1\n2 3 4 5 6\n7 8 9 0\n1 2 3
und eines mit einem zusätzlichen Raum für eine der Zeilen führt: ss5 6 7\nss8 9 0 1\n2 3 4 5 6\ns7 8 9 0\nss1 2 3
(führende Leerzeichen ersetzt werden mit s
ihm klarer in dieser unformatierten Form etwas zu machen) . Alle 10 Ihrer Testfälle werden derzeit mit meinem Code korrekt validiert, aber diese beiden Fälle würden mit der von mir verwendeten Methode fehlschlagen.