Строка, длина которой является положительным треугольным числом (1, 3, 6, 10, 15 ...), может быть скомпонована в «равносторонний текстовый треугольник», добавив несколько пробелов и символов новой строки (и сохранив ее в том же порядке чтения).
Например, строка длиной 10 ABCDEFGHIJ
становится:
A
B C
D E F
G H I J
Напишите программу или функцию, которая принимает такую строку, за исключением того, что она содержит только символы 0
и 1
. (Вы можете предположить, что ввод действителен.)
Для получающегося «равностороннего текстового треугольника» выведите (напечатайте или верните) одно из четырех чисел, обозначающих тип выставленной симметрии:
Выведите,
2
если треугольник имеет двустороннюю симметрию. то есть имеет линию симметрии от любого одного угла до середины противоположной стороны.Примеры:
0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1
Выведите,
3
если треугольник имеет вращательную симметрию. то есть его можно повернуть на 120 ° без визуального изменения.Примеры:
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 1
Выходной
6
если треугольник имеет как двустороннее и поворотную симметрию. то есть он соответствует условиям для вывода2
и3
.Примеры:
0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0
Выведите,
1
если треугольник не имеет ни двусторонней, ни вращательной симметрии.Примеры:
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
Самый короткий код в байтах побеждает. Tiebreaker - более ранний ответ.
Помимо необязательного завершающего символа новой строки, входная строка может не иметь пробела / символа новой строки или структуры - это должны быть простые 0
и 1
одинаковые символы.
При желании вы можете использовать любые два различных печатных символа ASCII вместо 0
и 1
.
Тестовые случаи
Взятые прямо из примеров.
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
«Поворот» любого входа на 120 °, конечно, приведет к тому же результату.