Wyzwanie
Biorąc pod uwagę kształt artystyczny ASCII, musisz dowiedzieć się, czy jest to zwykły sześciokąt, czy nie.
Sześciokąty
Zwykły sześciokąt jest definiowany przy użyciu dwóch reguł:
- Ma sześć stron
- Każda strona ma taką samą liczbę znaków
Na przykład poniższy kształt jest regularny, ale nie ma sześciu boków, a zatem nie jest zwykłym sześciokątem :
B a a h
s a i d
y o u r
g a o t
Podobnie poniższy kształt ma sześć boków, ale ma boki o różnych długościach, a zatem nie jest regularnym sześciokątem:
* *
* * *
* * * *
* * *
* *
Jednak następujący kształt ma sześć boków, a wszystkie boki mają tę samą liczbę znaków, więc jest to zwykły sześciokąt:
T h e
h e x a
g o n s a
r e c o
m i n
Zasady
Dane wyjściowe powinny mieć wartość true lub falsey (prawda, jeśli kształt jest regularnym sześciokątem, falsey, jeśli nie).
Kształty zawsze będą zawierały tylko znaki ASCII do wydruku.
Granica kształtu nigdy nie będzie zawierać spacji. Jeśli tak, możesz zwrócić falsey.
Mogą występować dowolne ilości białych znaków przed i / lub po kształcie.
Wszystkie kąty w kształcie mogą nie być równe, na przykład poprawny jest następujący kształt:
. . .
. . .
. . . . .
. . . .
. . .
Zwróci wartość falsey.
Wszystkie dane wejściowe kształtu będą na siatce oddzielonej spacjami. Sześciokątne dane wejściowe będą rozmieszczone naprzemiennie (każda linia jest odsunięta od następnej).
Przykłady
Prawda
Następujące kształty powinny zwracać prawdziwe wartości:
# _
+ + +
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
Poniższe powinny zwrócić wartości falsey
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
*
* *
* * *
.....
.......
.........
.......
.....
Ten kształt nie znajduje się na siatce oddzielonej przestrzenią i nie jest przesunięty.
* * * *
---------
* * * * * *
-------------
* * * * * *
---------
* * * *
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
W przypadku wprowadzania pojedynczych znaków twój program może wypisywać prawdę lub falsey:
&
Zwycięski
Najkrótszy program w bajtach wygrywa.
5 6 7\n8 9 0 1\n2 3 4 5 6\n7 8 9 0\n1 2 3
jeden z dodatkową spacją prowadzącą do jednego z wierszy: ss5 6 7\nss8 9 0 1\n2 3 4 5 6\ns7 8 9 0\nss1 2 3
(spacje wiodące są zastępowane, s
aby było to bardziej jasne w tej niesformatowanej formie) . Wszystkie 10 twoich przypadków testowych obecnie sprawdza poprawność z moim kodem, ale te dwa przypadki zakończyłyby się niepowodzeniem z zastosowanym podejściem.