Соревнование
В этом задании вы должны выполнить две разные (но связанные) задачи в зависимости от порядка ввода.
Ваша программа получит строку s
и целое число в n
качестве входных данных и будет
- разделить
s
на куски длины,n
если наs
первом месте. Последний элемент будет короче, если необходимо. - разделить
s
наn
кусочки равной длины, если этоn
произойдет первым. Еслиlen(s)
не кратноn
первымlen(s) mod n
элементам будет один длиннее.
Вы можете взять только эти 2 входа. s
никогда не будет содержать только цифры.
Заметки
- Вы можете использовать обратное отображение. Отметьте это в своем ответе, если вы это сделаете.
s
будет содержать только печатные символы ASCII (без перевода строки).- Вы не можете использовать любые встроенные функции, которые решают обе эти задачи напрямую. Все остальные встроенные функции разрешены.
- Вы должны взять оба аргумента из одного источника.
- Вы можете принимать аргументы в упорядоченном списке или любом другом формате, который четко указывает их порядок, если он однозначен.
- Вы можете взять входные данные как одну строку / поток и использовать символ, который не является допустимым входным (например, нулевой байт), чтобы разделить их.
n
всегда будет равно или меньше длиныs
и больше нуля.- Вы можете вывести итоговый список в любом подходящем формате, если он четко указывает конкретные части и их порядок.
пример
Входные данные: programming, 3
последний элемент содержит только 2 символа, потому что 11 не делится на 3.
Выходные данные: ["pro", "gra", "mmi", "ng"]
Вход: 3, programming
11 не кратен 3, поэтому первые 2 элемента будут на один длиннее:
Выход: ["prog", "ramm", "ing"]
правила
- Функция или полная программа разрешены.
- Правила по умолчанию для ввода / вывода.
- Применяются стандартные лазейки .
- Это код-гольф , поэтому выигрывает меньшее количество байт. Tiebreaker является более ранним представлением.
Контрольные примеры
Тестовые случаи были созданы с помощью этой программы Pyth (используются встроенные функции, поэтому нет правильного ответа). Спасибо @FryAmTheEggman за предоставление базовой версии этого!
3, helloworld -> ['hell', 'owo', 'rld'] helloworld, 3 -> ['hel', 'low', 'orl', 'd'] 1, программирование -> ['программирование'] программирование, 1 -> ['p', 'r', 'o', 'g', 'r', 'a', 'm', 'm', 'i', 'n', 'g'] 8, программирование -> ['pr', 'og', 'ra', 'm', 'm', 'i', 'n', 'g'] программирование, 8 -> ['programm', 'ing'] 9, код гольф -> ['c', 'o', 'd', 'e', '', 'g', 'o', 'l', 'f'] код гольф, 9 -> ['код гольф'] 4, 133tspeak -> ['133', 'ts', 'pe', 'ak'] 133tspeak, 4 -> ['133t', 'spea', 'k']
Удачного кодирования!