Input:
Dua digit tunggal (sebut saja m
dan n
) dan dua karakter (sebut saja a
dan b
) dalam format input pilihan Anda.
Keluaran:
Untuk penelusuran, berpura-pura m=2, n=5, a='a', b='b'
.
Output Anda akan berupa string yang dibangun dari empat input Anda. Mari kita sebut string result
, dengan nilai ""
. Pertama, menyatu a
ke result
m
kali, jadi menyatu a
ke result
2
kali. result
sekarang sama dengan aa
. Kedua, menyatu b
ke result
m
kali, jadi menyatu b
ke result
2
kali. result
sekarang sama dengan aabb
. Terakhir, jika hasilnya sudah lebih lama dari n
, potong result
sehingga memiliki panjang n
. Jika tidak, lanjutkan bergantian dengan m
panjang berjalan dari a
dan b
sampai result
panjang n
. Final result
adalah aabba
, yang memiliki panjang 5
.
Kasus uji:
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
Seperti diketahui, yang lebih kecil akan menguasai dunia, jadi program terkecil, dalam byte, menang! :)
sumber
m=2,n=10,a=A,b=B
Jawaban:
Python , 32 byte
Cobalah online!
sumber
f=
untuk -2 byte.f=
di bagian tajuk TIO, jadi Anda tidak perlu menghapusnya secara manual. TIO(a*m+b*m)
->(a+b)*m
: ini tidak berfungsi.MATL , 5 byte
Input adalah string dengan dua karakter, lalu
m
, lalun
.Cobalah online!
Penjelasan
sumber
Haskell,
4440 byteCobalah online!
sumber
Ruby, 29 karakter
Contoh dijalankan:
Cobalah online!
sumber
Japt , 10 byte
Pertama-tama coba gunakan bahasa golf. Cobalah online!
Penjelasan
sumber
VîWpU +XpU
juga, tetapi keduanya melakukan hal yang sama.Vî
sangat cocok untuk tantangan ini.05AB1E , 5 byte
Cobalah online!
Penjelasan
sumber
Jelly ,
64 byteCobalah online!
Terima kasih kepada Jonathan Allan untuk format input yang lebih baik (-2).
sumber
V , 13 byte
Cobalah online!
a
danb
diambil pada baris yang terpisah dalam input,m
dann
diambil sebagai argumen, dibalik (jadin
juga argumen pertama danm
yang kedua)Penjelasan
sumber
Haskell ,
363529 byteNamun solusi Haskell lainnya (mengharapkan karakter yang diberikan sebagai daftar):
Cobalah online!
Terima kasih @Laikoni untuk -1 byte.
sumber
(m#n)a b=
.R ,
4139 byteFungsi anonim; mencetak hasilnya ke stdout. Mengambil karakter sebagai vektor
d=c(a,b)
.gl
menghasilkan faktor (bilangan bulat) dari (dalam hal ini)2
tingkat panjang larim
dengan panjang totaln
!cat
menggabungkan dan mencetaknya sebagai string.Cobalah online!
sumber
function(d,m,n)rep(d,e=m,l=n)
akan menjadi pengajuan yang valid.rep
akan menghasilkan vektor karakter daripada string tunggalJavascript, 55 byte
Cuplikan kode contoh:
sumber
Javascript, 53 byte
sumber
Sekam , 3 byte
Port Langsung jawaban Haskell saya, kecuali bahwa urutan argumennya berbeda:
Cobalah online!
sumber
Haskell ,
4843 byteCobalah online!
sumber
QBIC ,
3727 bytePenjelasan
Upaya sebelumnya:
sumber
PHP> = 7.1, 77 byte
PHP Sandbox Online
sumber
Java (OpenJDK 8) , 75 byte
Cobalah online!
sumber
Cubix ,
6358 byteCobalah online!
perhatikan penerjemahnya
Mengambil input seperti di
ab*m*n
mana*
karakter non-digit dapat.Versi kubus:
i|is
: baca di karakter, dan tukar (begitua
juga di atas)I:q
: bacam
, dup, dan tekan ke bawah (tumpukan sekarangm,b,a,m
))
: pengurangan?
: belok kanan jika positif, lurus jika nol (duplikata
)s:rur(/w
: swap, dup, pindahm-i
ke atas tumpukan, penguranganm-i
B
: tumpukan terbalik (yang sekarang memilikim
salinana
:a... b m
)n
: negatem
(jadi kita bisa menggunakan?
untuk belok kiri))
: peningkatan?
: lurus jika nol, belok kiri jika negatifb
)s:r\/rw)\
pada dasarnya sama dengan cabang positif tetapi dengan kenaikan dan belokan kiri.>v;
: pop the0
off the stack (sepertinyaa...b...
)/B
: membalikkan tumpukanI
: Bacan
s
: swap print loop:oq
: cetak dan tekan ke bawah tumpukan sekarang terlihat seperti:ab...a...n
(
pengurangann
?
: belok kanan jika positif, lurus jika nol/su
tukar bagian atas tumpukan dan lanjutkan loop/
pantulkan turun dan kode yang dievaluasi adalahIru@
;@
mengakhiri program.sumber
Arang , 10 byte
Cobalah online! Tautan adalah untuk versi kode yang verbose dan termasuk contoh keempat. (Mengganggu deverbosifer tidak akan menghapus pemisah jika saya menambahkan satu sebelum yang terakhir
InputNumber()
.)sumber
Mathematica, 61 byte
memasukkan
sumber
Mathematica, 44 byte
Penjelasan
adalah karakter penggunaan pribadi tiga byteU+F3C7
, yang mewakili\[Transpose]
operator postfix di Mathematica. Tidak ada tautan TIO karena Matematika tidak mendukung
,\[Transpose]
memiliki prioritas operator yang salah, argumen keduaTable
diperlukan sebagai daftar, dan yang paling penting,StringPadRight
tidak diterapkan.sumber
APL (Dyalog) , 5 byte
Cobalah online!
Mengambil dua karakter dalam string sebagai input pertama, diikuti oleh
m
dan kemudiann
.Penjelasan
Biarkan contoh masukan menjadi
'ab'
,2
,10
.sumber
Pyth , 13 byte
Cobalah online!
Penjelasan
sumber
k, 10 byte
Cobalah online!
sumber
Chip , 588 byte
Cobalah online!
Mengambil input sebagai string 4 karakter. Dua yang pertama adalah karakter a dan b , diikuti oleh nilai byte m , dan kemudian nilai byte n . Misalnya, TIO mencakup input
ab<tab>2
, ini terkait dengan 'a', 'b', 9, 50. (Karena kode untuk<tab>
dan2
9 dan 50.Bagaimana?
Jawaban ini agak raksasa, tapi inilah yang terpenting:
Blok kiri atas, dengan huruf kecil
a
-h
, adalah mekanisme penyimpanan untuk karakter a dan b , satu baris per bit. Di bagian bawahnya, denganv~v
danmz
merupakan mekanisme switching, untuk bertukar antara keduanya.Di tengah adalah kolom dengan sekelompok
~#M
's. Ini berbunyi dalam m dan menyimpan negatifnya. Segitiga besar ke kanan hanya kabel untuk membawa nilai ini ke akumulator atas.Blok kanan atas adalah akumulator untuk m . Itu meningkatkan setiap siklus (mulai dari -m ) hingga mencapai nol. Ketika ini terjadi, karakter output ditukar, dan menghitung restart dari -m .
Sementara itu, ada blok bawah, yang merupakan akumulator n . Karena n hanya dibaca sekali, kita tidak perlu bank memori (
M
danm
) untuk menyimpan nilai ini. Kami cukup meniadakannya dan mulai menghitung. Ketika nilai ini mencapai nol, seluruh shebang dihentikan begitu saja.Semua protes lainnya adalah penundaan (
Z
danz
), kabel (-
,|
, ...), dan varia lainnya.sumber