Мы все знаем, что многие упражнения затрагивают только половину вашего тела, поэтому вам нужно выполнять их дважды, по одному для каждой стороны. Такие упражнения имеют два аналога, один для левой стороны и один для правой. Однако нет необходимости выполнять два экземпляра последовательно, если упражнения для обеих сторон находятся в одном и том же порядке. Вы можете также переключаться между сторонами в своей программе упражнений, но не имеет смысла начинать некоторые упражнения с одной стороны, а некоторые с другой.
Вызов
Упражнение часть представляет собой список ненулевых целых чисел, где его вторая половина состоит из чисел первой половины отрицается и в том же порядке, и знаки чисел на каждой половине равны. Признак первой половины части упражнения - ее ведущая сторона. .
Набор упражнений равен нулю или больше упражнений частей с одной и той же ведущей стороне объединяются вместе.
Учитывая список ненулевых целых чисел в качестве входных данных, определите, является ли это набор упражнений. Целые числа не обязательно уникальны. Длина списка не обязательно четная.
Ваше решение не может использовать какие-либо стандартные лазейки . Вы можете использовать любые два различных последовательных значения для вывода. Это код-гольф , поэтому выигрывает самое короткое решение.
Примеры
[-5, -1, -7, -6, -5, 5, 1, 7, 6, 5]
пример части упражнения. Первая половина есть [-5, -1, -7, -6, -5]
, а последняя половина [5, 1, 7, 6, 5]
- каждое целое число в первой половине отрицается. Кроме того, целые числа первой половины имеют одинаковый знак. Ведущая сторона этой части упражнения-1
.
[3, 6, 5, -3, -6, -5, 1, 6, 4, 3, -1, -6, -4, -3]
пример набора упражнений Его отдельные части упражнения [3, 6, 5, -3, -6, -5]
и [1, 6, 4, 3, -1, -6, -4, -3]
, и они оба имеют ведущую сторону1
.
[4, -4, -5, 5]
Несмотря на то, что он состоит только из допустимых частей упражнения, он не является набором упражнений, поскольку первая часть [4, -4]
имеет ведущую сторону 1
, а вторая часть [-5, 5]
имеет ведущую сторону -1
.
Контрольные примеры
Допустимые тестовые случаи:
[]
[1, -1]
[1, -1, 1, -1]
[-6, 6, -5, -4, -3, 5, 4, 3]
[-1, -5, -8, 1, 5, 8, -7, -6, -5, -3, 7, 6, 5, 3]
[-1, -5, -8, 1, 5, 8, -1, 1]
Неверные тестовые случаи:
[1]
[1, -2]
[1, 2, -3, -1, -2, 3]
[1, 2, 3, -3, -1, -2]
[-1, -5, -8, 1, 5, 8, 7, 6, 5, 3, -7, -6, -5, -3]
[1, 2, 3, 5, 1, 2, 3, 5]
[1, 2, -5, 4, -6, 5, 5, -6]
[1, 2, -1, 3, -2, -3]
[1, -2, 1]
[-1, -1, 1]
[1, -1, 1]