Eine Zeichenfolge, deren Länge eine positive Dreieckszahl ist (1, 3, 6, 10, 15 ...), kann zu einem "gleichseitigen Textdreieck" angeordnet werden, indem Leerzeichen und Zeilenumbrüche hinzugefügt werden (und die Lesereihenfolge beibehalten wird).
Beispielsweise wird die Zeichenfolge mit der Länge 10 ABCDEFGHIJzu:
A
B C
D E F
G H I J
Schreiben Sie ein Programm oder eine Funktion, die eine solche Zeichenfolge akzeptiert, mit der Ausnahme, dass sie nur die Zeichen 0und enthält 1. (Sie können davon ausgehen, dass die Eingabe gültig ist.)
Geben Sie für das resultierende "gleichseitige Textdreieck" eine der vier Zahlen aus (Drucken oder Zurückgeben), die den Typ der gezeigten Symmetrie angibt:
Ausgabe,
2wenn das Dreieck bilateral symmetrisch ist. dh es hat eine Symmetrielinie von einer Ecke zum Mittelpunkt der gegenüberliegenden Seite.Beispiele:
0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1Ausgabe,
3wenn das Dreieck rotationssymmetrisch ist. dh es könnte ohne optische Veränderung um 120 ° gedreht werden.Beispiele:
0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1Ausgabe,
6wenn das Dreieck sowohl bilateral als auch rotationssymmetrisch ist. dh es entspricht den Bedingungen für die Ausgabe von sowohl2und3.Beispiele:
0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0Ausgabe,
1wenn das Dreieck weder bilateral noch rotationssymmetrisch ist.Beispiele:
1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1
Der kürzeste Code in Bytes gewinnt. Tiebreaker ist frühere Antwort.
Abgesehen von einer optionalen nachgestellten Newline darf die Eingabezeichenfolge keine Leerzeichen / Newline-Auffüllung oder -Struktur aufweisen - es sollte sich um ein einfaches 0und ein einfaches Zeichen handeln 1.
Falls gewünscht, können Sie anstelle von und zwei verschiedene druckbare ASCII- Zeichen verwenden .01
Testfälle
Direkt aus Beispielen entnommen.
011 -> 2
101 -> 2
001010 -> 2
1111010111 -> 2
0100110100 -> 3
0011000010 -> 3
101111111010111 -> 3
101001100010000100111 -> 3
0 -> 6
1 -> 6
000 -> 6
100101 -> 6
0000100000 -> 6
110000 -> 1
001101 -> 1
1101111111 -> 1
111111000111111 -> 1
Wenn Sie einen Eingang um 120 ° drehen, erhalten Sie natürlich den gleichen Ausgang.