Связанный: Скажите мне, сколько математических задач я должен сделать!
Вызов
Учитывая строго положительный строго возрастающий список L и целое число 3 ≤ N ≤ длины L, замените средние целые числа последовательных целых серий L длины ≥ N одной чертой -
.
правила
- Горизонтальные пробелы не имеют значения.
- При желании вы можете сохранить символы вводителя, разделителя и терминатора в формате списка по умолчанию для вашего языка. См. Примеры форматов ниже.
Примеры данных
Все эти примеры используют L = 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
.
N = 3
→ 3 5 - 8 10 - 12 14 16 - 22 24
N = 4
→ 3 5 - 8 10 11 12 14 16 - 22 24
N = 5
→ 3 5 6 7 8 10 11 12 14 16 - 22 24
N = 8
→ 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
Примеры форматов
Для входных данных
L = [3,5,6,7,8,10,11,12,14,16,17,18,19,20,21,22,24]
и N = 3
всех приведенных ниже строк приведены примеры правильных ответов как в виде фактических списков, так и в виде строк:
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
[3,5,-,8,10,-,12,14,16,-,22,24]
[3,5-8,10-12,14,16-22,24]
3,5-8,10-12,14,16-22,24
То же самое относится и к другим форматам списков, например, {1 2 3}
и (1; 2; 3)
т. Д. Сомневаетесь? Спросить!
-
или нам разрешено использовать другой символ?_
чтобы я мог продолжать работать с числовыми массивами в J.'-'
. Вы также можете быть в состоянии привести в порядок все, прежде чем вставлять тире, нет?[3,5,-8,10,-12,14,16,-22,24]
(этот формат кажется наиболееОтветы:
Python 2 ,
132115 байт-17 байт благодаря Лаки Нун
Попробуйте онлайн!
источник
while t+i==x[i]:
работать? Или я что-то упустил?i
становилось выше, чем размерx
Желе ,
26 2523 байта-2 байта благодаря Эрику Аутгольферу (перенеся оператор if в основную ссылку)
Диадическая ссылка, возвращающая список в
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
формате.Попробуйте онлайн!(нижний колонтитул разделяется пробелами, чтобы напечатать пример данных формата).
Как?
источник
Pyth, 23 байта
Попробуйте онлайн
Как это работает
источник
Japt , 24 байта
Попробуйте онлайн!
объяснение
источник
Mathematica, 128 байт
вход
выход
Попробуйте онлайн!
источник
APL, 38 байт
источник
PHP 7,
137 136 134 117 110108 байтБерет
L
из первого аргумента, список элементов после этого. Запустите-nr
или попробуйте онлайн .Заменить
$L=($a=$argv)
на$a=$argv,$L=
(+1 байт) для PHP <7.сломать
источник
Сетчатка , 101 байт
Попробуйте онлайн! Принимает разделенный пробелами список
L
в первой строке и целое числоN
во второй строке. Пояснение: Первый этап преобразует ввод в унарный. На втором этапе пространство между последовательными целыми числами изменяется наX
. Третий этап ищет серии последовательных целых чисел, длина которых меньше,N
и меняет ихX
обратно на пробелы. Четвертый этап изменяетX
s на-
(это было на 3 байта короче, чем использование-
s в первую очередь.) Пятый этап удаляет все целые числа, все еще оставшиеся в середине цикла, а такжеN
, в то время как последний этап преобразуется обратно в десятичное число.источник
Рубин, 68 байт
Возвращает строку как например
3,5-8,10-12,14,16-22,24
.Попробуйте онлайн!
источник
J , 40 байт
Попробуйте онлайн!
Использует
_
вместо-
.объяснение
источник
Желе,
393736 байтПопробуйте онлайн
Принимает массив через аргументы, а целое число через STDIN. Ссылка TIO использует нижний колонтитул,
ÇG
поэтому выходные данные разделены пробелом.Как? (Array:
a
, Integer:n
)Я предполагаю, что упал ... безрезультатно на этом.
источник
JavaScript (ES6),
126119 байтАнонимная функция. Принимает ввод в порядке
Array L, Integer N
и возвращает результат в виде строки через запятую.Показать фрагмент кода
источник
e=>c=>
.Dyalog APL v16.0,
82807876756562 байтаВау, это ... плохо. Там, вероятно, гораздо более короткое решение с трафаретом.
Попробуйте онлайн!
Предложения по игре в гольф приветствуются!
источник