Соревнование
Для заданной входной строки (или массива), состоящей из <
и >
, выведите последовательность (массив или строку) целых чисел, такую что:
- все операторы являются правильными, если их применять по порядку между последовательными числами в выходных данных.
- все целые числа положительны (1 или больше)
- сумма целых чисел настолько мала, насколько это математически возможно
Входные данные могут варьироваться в зависимости от "больше чем" и "меньше чем" на выбранном вами языке.
В качестве альтернативного вывода просто укажите сумму чисел в выводе. Укажите версию, которую вы решаете, в заголовке своего ответа.
Применяются обычные исключения и правила, побеждают наименьшие байты.
Вы можете предположить, что входная строка никогда не приведет к целочисленному переполнению в вашем языке, если это поможет.
Примеры
>
дает2 1
какие суммы3
>>>
дает4 3 2 1
какие суммы10
><
дает2 1 2
какие суммы5
дает
1
какие суммы1
>>>>>>>>>
дает10 9 8 7 6 5 4 3 2 1
какие суммы55
>><<>><>>>
дает3 2 1 2 3 2 1 4 3 2 1
какие суммы24
><>><>><>
дает2 1 3 2 1 3 2 1 2 1
какие суммы18
<<<<>
дает1 2 3 4 5 1
какие суммы16
<<<<><<>
дает1 2 3 4 5 1 2 3 1
какие суммы22
>><<
дает3 2 1 2 3
какие суммы11
code-golf
sequence
mathematics
simonalexander2005
источник
источник
>
и<
?><>
Ответы:
Желе , 19 байт
Попробуйте онлайн!
Значение каждого числа является максимальным ( число
>
непосредственно справа от него , число<
непосредственно слева от него ) + 1 .С другой стороны ...
Попробуйте онлайн!
источник
> <> ,
4038 байтПопробуйте онлайн!
Подходящий язык. Для справки
><>
сама дает 2,1,2,1.Как это устроено:
источник
Python 3, 93 байта
Попробуйте онлайн!
расшифровывали:
источник
Haskell , 119 байт
Попробуйте онлайн!
объяснение
Идея здесь состоит в том, что у нас есть серии
>
s или<
s, каждый из которых соответствует возрастающим и нисходящим диапазонам. Поэтому мы используемgroup
для разделения строки на группы последовательных символов. Наша работа состоит в том, чтобы затем соединить их надлежащим образом.Когда у нас есть,
<>
мы хотим соединить два списка, например, с большим конечным значениемразделен
сопоставлены с диапазонами
Затем, когда мы сшиваем, мы падаем,
3
потому что он меньше (3
не больше чем7
).Когда у нас есть,
><
мы делаем противоположное, мы опускаем большее значение.Фактический код достигает этого, делая оператора
%
. Определение%
довольно сложное, но в основном оно читает слева направо, отслеживая, сколько последовательных символов совпадают. Это делает слева значение оператора. Когда мы достигаем места, где меняются персонажи, мы выполняем сшивание, как я описал.источник
(2%)
?%
с2
первым аргументом.main
реализации?Сетчатка 0.8.2 , 36 байт
Попробуйте онлайн! Ссылка включает в себя тестовые случаи. Объяснение:
Вставьте
1
s до, между и после<
s и>
s.Повторно увеличивайте целые числа, пока все сравнения не будут выполнены.
Суммируйте целые числа и преобразуйте в десятичную.
источник
Java 10,
198181 байтПопробуйте онлайн.
Объяснение:
источник
Haskell , 87 байт
Попробуйте онлайн!
Порт моего желе ответа.
источник
Stax , 21 байт
Запустите и отладьте его
Он работает путем кодирования входной длины, а затем объединяет сгенерированные диапазоны. Распакованный, размазанный и прокомментированный, это выглядит так.
Запустите этот
источник
Perl 5
-p
, 53 байтаПопробуйте онлайн!
источник
Красный , 185 байт
После объяснения пользователя 202729 ...
Попробуйте онлайн!
источник