Задача состоит в том, чтобы сгенерировать все строки от 'a' до '999', включая символы в верхнем регистре, например:
'a', 'b', 'c' ... 'y', 'z', 'A', 'B', 'C' ... 'Y', 'Z', '0', '1', 2' ...
'8', '9', 'aa', 'ab', 'ac' ... 'az', 'aA', 'aB' ... 'aZ', 'a0' ... 'a9', 'ba'
и так далее (заполнение пробелов), необязательно начиная с пустой строки.
Входные данные:
- Количество последовательных символов, которое программа должна распечатать до.
Выход:
- Массив, содержащий каждую строку ИЛИ одну строку на строку
Разъяснения:
Порядок не имеет значения, вы можете сначала печатать заглавные или строчные буквы, если хотите.
Выходные данные могут возвращать любой тип перечислимого типа, не обязательно должен быть массив, хотя я сомневаюсь, что распечатка всех комбинаций будет не самым простым способом.
Ввод
3
будет выводить всю строку из'a'
(или''
) в'999'
‚ввод5
до'99999'
и так далее.
code-golf
string
number
array-manipulation
Саймон Лэндри
источник
источник
a = (function return)
.a
к9999
, для 5 этоa
к99999
, и так далее.Ответы:
Желе , 7 байт
Это монадическая ссылка, которая принимает целое число в качестве входных данных и возвращает массив строк.
Попробуйте онлайн!
Как это устроено
источник
Haskell, 65 байт
Пример использования:
k 3
->["a","b","c",....,"997","998","999"]
.Как это устроено
источник
Python, 86 байт
Выводит список непустых строк. Рекурсивно добавляет каждый алфавитно-цифровой символ к каждому выводу
n-1
и пустой строке.источник
JavaScript (Firefox 30-57), 108 байт
Сохранено 3 байта с помощью toUpperCase. Вычисление 62 символов отнимает у меня дополнительные 10 байтов.
источник
f=
в начале. (Я всегда забываю делать это для рекурсивных ответов.)f=
, любые дальнейшие проблемы связаны с тем, как вы пытаетесь это назвать.Корица, 15 байтов
Недостаточно коротко, несмотря на то, что это было именно то, для чего была создана Cinnamon Gum :(
Сжатие путем преобразования из биективной базы 96 в базу 256. Попробуйте онлайн. Входы больше 2 вызовут проблемы на TIO.
объяснение
Это распаковывает в регулярное выражение
[a-zA-Z0-9]{1,%s}
. Затемh
режим подставляет входные данные в%s
и выводит все строки, соответствующие регулярному выражению.источник
Рубин, 82 байта
Создает декартовы произведения из символов, заданных до заданной длины. Набор символов генерируется путем захвата всех символов между
0
иz
и отфильтровывая несловарные символы, а также_
.источник
05AB1E ,
98 байтКод:
Объяснение:
Использует кодировку CP-1252 . Попробуйте онлайн! ,
источник
Python 2,7,
136134 байтаСпасибо Maltysen и NonlinearFruit за сохранение 2 байтов
Берет
ascii_letters
иdigits
из строкового модуля и использует декартово произведение какproduct
из itertools для вычисления всех комбинаций.Выход
источник
i in range(n)
сrepeat=i+1
range
функцию?Pyth -
1312 байт1 байт сохранен благодаря @Jakube.
Попробуйте это онлайн здесь .
источник
rBG1
сохранить один байт более+GrG1
B
ifurcate работает с аргументами? Благодарю.Python 2,
10697 байтПопробуйте это на Ideone .
источник
MATL , 12 байт
Это принимает число в качестве ввода.
Попробуйте онлайн!
объяснение
источник
𝔼𝕊𝕄𝕚𝕟 21 символ / 27 байт
Try it here (Firefox only).
Нет. Нет. Нет.
объяснение
источник
Perl, 113 байт + пробел
Используйте "perl -E" в приведенном выше аргументе с числом. Вероятно, я мог бы прилично не сосчитать последнее "карта сказать" в подсчете символов.
источник
J, 50 байт
Половина байтов, а точнее 25, тратится на генерацию необходимых букв и цифр.
источник
APL,
3837 байтисточник
(⎕ucs 96+⍳26),⎕d
=>⎕d,⍨⎕ucs 96+⍳26
Утилиты Bash + GNU, 90
Ввод как параметр командной строки. Выход - это список, разделенный пробелами.
Работает на входах upt и в том числе 3. Недостаточно памяти с 4-мя -
eval printf
занимает весь набор 63 н. элементов расширения bash.источник
Утилиты Bash + GNU, 66
Другой (и я думаю, немного новый) подход к моему другому ответу :
dc
отсчитывает от 2 48 -1 до 2 48 -64 n иP
печатает каждое результирующее число как поток байтов (т. е. основание 256). Если ввод от 1 до 4 включительно, это гарантированно будет ровно 6 байтов на число.base64
преобразует это в вывод base64 и, таким образом, 8 байтов на цифру base64, по одному на строку.sed
удаляет/
начальные символы (цифра 63 из base64), а затем удаляет все строки, содержащие+
или/
(цифры 62 и 63 из base64). Это оставляет необходимую последовательность.источник
R , 73 байта
y
начинается как пустая строка,x
как базовый вариант'a','b','c',...,'8','9'
.outer
принимает каждый из его входных аргументов, и применяет функциюpaste0
к каждой комбинации элементовy
иx
конкатенации строк.y
сохраняет результат,cat
печатает его, и это повторяет STDIN количество раз, делающих это.Попробуйте онлайн!
источник
Jq 1,5 , 97 байт
расширенный
Попробуйте онлайн!
источник