Рядок, довжина якого є позитивним трикутним числом (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
Виграє найкоротший код у байтах. Тирбекер - це відповідь раніше.
Окрім необов’язкового контуру нового рядка, вхідний рядок може не мати пробілу / нової строчки або структури - він повинен бути простим 0's та 1' s.
За бажанням ви можете використовувати замість та та будь-які два символи ASCII для друку .01
Випробування
Взяте прямо з прикладів.
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 °, звичайно, призведе до того ж виходу.