Учитывая 2 входа (m = минимальный начальный идентификатор , n = количество идентификаторов ), сгенерируйте последовательный список идентификаторов, начиная с> = m, состоящий из цифр 0-9, где нет двух одинаковых последовательных чисел, например, 1232 хорошо, 1233 нет (содержит 2 '3 рядом друг с другом).
пример
для m = 985, n = 6, ниже показано, какие идентификаторы будут сгенерированы / пропущены
...
985 - ok, 1st
986 - ok, 2nd
987 - ok, 3rd
# skip 0988 (contains '88')
989 - ok, 4th
# Skip 099x (contains '99')
# Skip 100x (contains '00')
1010 - ok, 5th
# Skip 1011 (contains '11')
1012 - ok, 6th
...
Выход
Каждый идентификатор должен быть напечатан в новой строке, как в приведенной выше последовательности:
985
986
987
989
1010
1012
правила
Стандартные правила игры в гольф, побеждает наименьшее количество байт
code-golf
subsequence
beirtipol
источник
источник
Ответы:
Желе , 6 байт
Попробуйте онлайн!
Как это устроено?
источник
Брахилог ,
1110 байтВвод представляет собой список из двух чисел. Попробуйте онлайн!
объяснение
Встроенный
ḅ
берет список или строку, как"1000220"
, и разбивает его на блоки равных смежных элементов, как["1","000","22","0"]
. В этой программе я применяю~
к нему оператор, поэтому он работает в обратном порядке: он берет список строк, проверяет, что каждая строка состоит из повторений одного символа и соседние строки имеют разные символы, и объединяет список. Предикат≤
перечисляет числа, начиная с первого ввода, в возрастающем порядке, и я проверяю условие на них, печатая те, которые его удовлетворяют, и останавливаюсь, когда я нахожу достаточно.источник
05AB1E , 9 байт
Попробуйте онлайн!
Exlpanation
источник
Java 8, 83 байта
Объяснение:
Попробуйте онлайн.
источник
PowerShell , 59 байт
Попробуйте онлайн!
В основном похожи на другие ответы. Выполняет циклы, пока у нас осталось число для print (
for(;$n)
), проверяет, есть ли у нас совпадение регулярного выражения с двузначным числом, и если нет, оно помещает это в конвейер и уменьшает$n
. Затем мы увеличиваем$m
и повторяем цикл снова. Элементы извлекаются из конвейера, и неявноеWrite-Output
дает нам вывод с разделителями новой строки бесплатно.источник
R ,
1119271 байтПопробуйте онлайн!
Используется
grepl
для поиска повторяющихся цифр.источник
Желе , 9 байт
Попробуйте онлайн!
Если не для выходного ограничения,
Y
может быть удалено.источник
C 73 байта
Попробуйте онлайн!
источник
Perl 6 , 56 байт
Попытайся
Expanded:
источник
Сетчатка , 34 байта
Попробуйте онлайн! Берет
n
и вm
качестве ввода по отдельным строкам. Объяснение:Выключите автоматический вывод и удалите
n
из рабочего буфера.Повторите
n
раз.Выведите значение
m
в конце следующей зацикленной группы.Цикл пока есть смежные цифры.
Преобразовать в одинарный.
Посчитайте количество пустых строк, которое на один больше, чем количество символов, добавив, таким образом, 1 и преобразовав обратно в десятичную. На этом заканчивается внутренний цикл.
Распечатав
m
, добавьте 1 снова таким же образом. (Последняя строка не нужна,C`
потому что это тип сцены по умолчанию для последней строки.) Внешний цикл неявно завершен.Обратите внимание, что преобразование в унарное и обратно в десятичное немного медленное; для 39 байтов - версия, которая не выполняет никакого преобразования:
Попробуйте онлайн! Пояснение:
$.(
вычисляет длину остальной части замещения, удобно без фактического ее расширения; поскольку длина*_
неявно совпадает со значением, а длина,_
конечно, равна 1, это просто увеличивает значение.источник
Perl 5.10.0 +
-n
,4039 байтПопробуйте онлайн!
-1 байт благодаря Xcali
Ввод в две строки, сначала n, затем m. Убедитесь, что после m нет новой строки.
источник
Perl 5 ,
-ln
33 байтаВведите 2 строки в STDIN, сначала начальный идентификатор, затем счет
Попробуйте онлайн!
источник
$n.=<>
работает, особенно с-=
...$n
может быть0
так, что делать их вместе вместе - неправильноPython 2 ,
8073 байта-7 байт благодаря мистеру Xcoder
Попробуйте онлайн!
источник
Haskell , 70 байт
-19 байт благодаря Ними.
Попробуйте онлайн!
17 байтов, предназначенных для разделения на новые строки.
источник
mapM
иprint
. Попробуйте онлайн!Stax ,
98 байтов CP437Попробуйте онлайн!
Случается совпадение с алгоритмом @ Mr.Xcoder в его ответе Jelly.
-1 байт за комментарий @recursive.
объяснение
Использует распакованный формат для объяснения.
источник
Haskell ,
949391 байт-1 байт благодаря Лайкони
-2 байт благодаря Згарбу
Попробуйте онлайн!
Первый Haskell Golf.
источник
group(show a)
может бытьgroup$show a
.(<2).length
может бытьnull.tail
Pyth , 12 байт
Попробуй здесь
источник
JavaScript (ES6), 50 байт
Принимает ввод в синтаксисе карри
(m)(n)
.Попробуйте онлайн!
источник
C # (.NET Core), 91 байт
Порт ответа @Steadybox 'C.
Попробуйте онлайн.
источник
Perl 5 (
-nl
), 42 байтаПопробуйте онлайн!
источник
AWK , 90 байт
Попробуйте онлайн!
Это намного страшнее, чем я думал. Я обнаружил, что
AWK
в егоgensub
функции есть только обратное замещение, что делает его не очень эффективным для использования в этом приложении.Так что это очень простой подход - увеличить счетчик идентификаторов, разделить счетчик на каждом символе, циклически проходить по символам, чтобы увидеть, совпадает ли какой-либо символ с предыдущим. Если повторяющихся символов не найдено, напечатайте счетчик идентификаторов и увеличьте количество напечатанных идентификаторов.
Я постараюсь воздержаться от заявлений в духе "
AWK
должен иметь возможность делать более надежные регулярные выражения», но это будет сложно.источник
Утилиты Bash + GNU, 35
Попробуйте онлайн .
источник
Рубин , 47 байтов
Попробуйте онлайн!
Если вам не нравятся кавычки, это 50 байтов
Попробуйте онлайн!
источник
Пип , 22 байта
Попробуйте онлайн!
объяснение
источник