Входы:
Две отдельные цифры (назовем их m
и n
) и две буквы (назовем их a
и b
) в выбранном вами формате ввода.
Выход:
Для прохождения, притворись m=2, n=5, a='a', b='b'
.
Ваш вывод будет строкой, созданной из ваших четырех входов. Давайте назовем строку result
со значением ""
. Во- первых, конкатенация a
на result
m
раз, так что СЦЕПИТЬ a
на result
2
раз. result
теперь равны aa
. Во-вторых, объединить b
на result
m
раз, поэтому объединить b
на result
2
раз. result
теперь равны aabb
. И наконец, если результат уже длиннее n
, обрезать result
его до длины n
. В противном случае продолжайте чередование с m
длинами отрезков a
и b
пока result
не будет длины n
. Окончательное result
это aabba
, который имеет длину 5
.
Тестовые случаи:
Input: m = 2, n = 4, a = A, b = B
Output: AABB
Input: m = 3, n = 8, a = A, b = B
Output: AAABBBAA
Input: m = 4, n = 3, a = A, b = B
Output: AAA
Input: m = 2, n = 10, a = A, b = B
Output: AABBAABBAA
Как всем известно, миром правит меньшее, поэтому побеждают самые маленькие программы в байтах! :)
источник
m=2,n=10,a=A,b=B
Ответы:
Python , 32 байта
Попробуйте онлайн!
источник
f=
байты на -2.f=
в заголовочный раздел TIO, поэтому вам не нужно удалять его вручную. TIO(a*m+b*m)
->(a+b)*m
: это не работает.MATL , 5 байтов
Входные данные - это строка с двумя символами, затем
m
, затемn
.Попробуйте онлайн!
объяснение
источник
Haskell,
4440 байтПопробуйте онлайн!
источник
Рубин, 29 символов
Образец прогона:
Попробуйте онлайн!
источник
Japt , 10 байт
Сначала попробуйте использовать язык игры в гольф. Попробуйте онлайн!
объяснение
источник
VîWpU +XpU
тоже можете это сделать , но оба делают одно и то же.Vî
идеально подходит для этой задачи.05AB1E , 5 байтов
Попробуйте онлайн!
объяснение
источник
Желе ,
64 байтаПопробуйте онлайн!
Спасибо Джонатану Аллану за лучший формат ввода (-2).
источник
V , 13 байт
Попробуйте онлайн!
a
иb
взяты в отдельных строках на входе,m
иn
взяты в качестве аргумента, обратный (такn
же, как первый аргумент иm
второй)объяснение
источник
Haskell ,
363529 байтЕще одно решение на Haskell (ожидается, что символы представлены в виде списка):
Попробуйте онлайн!
Спасибо @Laikoni за -1 байт.
источник
(m#n)a b=
.R ,
4139 байтАнонимная функция; выводит результат в стандартный вывод. Принимает персонажей как вектор
d=c(a,b)
.gl
генерирует факторы (целые числа) (в данном случае)2
уровней длины пробегаm
с общей длинойn
!cat
объединяет и печатает их в виде строки.Попробуйте онлайн!
источник
function(d,m,n)rep(d,e=m,l=n)
что будет правильным представлением.rep
приведет к вектору символов, а не к одной строкеJavascript, 55 байт
Пример кода:
источник
Javascript, 53 байта
источник
Шелуха , 3 байта
Прямой порт моего ответа на Haskell, за исключением того, что порядок аргументов отличается:
Попробуйте онлайн!
источник
Haskell ,
4843 байтаПопробуйте онлайн!
источник
QBIC ,
3727 байтобъяснение
Предыдущая попытка:
источник
PHP> = 7,1, 77 байт
PHP Sandbox Online
источник
Java (OpenJDK 8) , 75 байт
Попробуйте онлайн!
источник
Cubix ,
6358 байтПопробуйте онлайн!
смотреть переводчик
Принимает вход как
ab*m*n
где*
может быть любой нецифровый символ.Куб версия:
i|is
: прочитайте символы и поменяйте их местами (значит,a
сверху)I:q
: читатьm
, дублировать и толкать вниз (стек сейчасm,b,a,m
))
: декремент?
: повернуть направо, если положительный, идти прямо, если ноль (дублируетa
)s:rur(/w
: swap, dup, перемещениеm-i
на вершину стека, уменьшениеm-i
B
: Обратный стек (который теперь имеетm
копиюa
:a... b m
)n
: negatem
(чтобы мы могли?
повернуть налево))
: приращение?
: идти прямо, если ноль, повернуть налево, если отрицательныйb
)s:r\/rw)\
в основном так же, как положительная ветвь, но с приращением и левым поворотом.>v;
: вытолкнуть0
из стека (выглядит какa...b...
)/B
: перевернуть стекI
: читатьn
s
: swap print loop:oq
: print и push в конец стека теперь выглядит так:ab...a...n
(
декрементn
?
: повернуть направо, если положительный, идти прямо, если ноль/su
поменяйте местами вершину стека и продолжите цикл/
отражает вниз и код оценивается какIru@
;@
завершает программуисточник
Древесный уголь , 10 байт
Попробуйте онлайн! Ссылка на подробную версию кода и включает в себя четвертый пример. (К сожалению, девербосифер не удалит разделитель, если я добавлю один перед последним
InputNumber()
.)источник
Mathematica, 61 байт
вход
источник
Mathematica, 44 байта
объяснение
это трехбайтовый символ частного использованияU+F3C7
, представляющий постфиксный\[Transpose]
оператор в Mathematica. Нет ссылки на TIO, потому что Mathics не поддерживает
,\[Transpose]
имеет неправильный приоритет оператора, второй аргумент toTable
должен быть списком и, что самое важное,StringPadRight
не реализован.источник
APL (Dyalog) , 5 байтов
Попробуйте онлайн!
Принимает два символа в строке в качестве первого ввода, затем следует
m
и затемn
.объяснение
Пусть пример ввода быть
'ab'
,2
,10
.источник
Pyth , 13 байт
Попробуйте онлайн!
объяснение
источник
к, 10 байт
Попробуйте онлайн!
источник
Чип , 588 байт
Попробуйте онлайн!
Принимает ввод в виде 4-символьной строки. Первые два - это символы a и b , за которыми следует байтовое значение m , а затем байтовое значение n . Например, TIO включает ввод
ab<tab>2
, это соответствует 'a', 'b', 9, 50. (Так как коды для<tab>
и2
являются 9 и 50.Как?
Этот ответ немного чудовищен, но вот основные моменты:
Верхний левый блок с нижним регистром
a
-h
это механизм хранения символов a и b , одна строка на бит. В нижней части, сv~v
иmz
находится механизм переключения, для переключения между ними.В середине колонна с кучей
~#M
символов. Это читает в м и хранит его отрицательный. Большой треугольник справа - это просто провода, чтобы перенести это значение в верхний аккумулятор.Верхний правый блок - это аккумулятор для m . Он увеличивает каждый цикл (начиная с -m ), пока не достигнет нуля. Когда это происходит, выходной символ заменяется, и отсчет начинается с -m .
Между тем, есть нижний блок, который является n аккумулятором. Поскольку n читается только один раз, нам не нужен банк памяти (
M
иm
) для хранения этого значения. Мы просто отрицаем это и начинаем считать. Когда это значение достигает нуля, весь шебанг просто прекращается.Все остальные это пустая болтовня задержка (
Z
иz
), проводка (-
,|
, ...), и другой альманах.источник