Kami belum memiliki pertanyaan string untuk sementara waktu (tepatnya 5 hari), jadi mari kita lanjutkan.
Diberikan string s
dan bilangan bulat positif n
, ambil setiap n
elemen s
, ulangi n
kali, dan masukkan kembali s
.
Misalnya, jika n = 3
dan s = "Hello, World!"
, setiap karakter ketiga adalah Hl r!
. Anda kemudian ulangi setiap karakter n
kali untuk menghasilkan HHHlll rrr!!!
. Anda kemudian mengganti huruf aslinya dengan versi yang diulang untuk menghasilkan produk akhirHHHellllo, Worrrld!!!
Anda harus menyelesaikan tugas ini dalam kode sesingkat mungkin dalam bahasa Anda!
Aturan
- Ini adalah kode-golf sehingga kode terpendek dalam byte menang
n
dijamin lebih kecil dari panjangs
dan lebih besar dari 0- Karakter pertama
s
adalah dari manan
karakter th diambil, dan selalu berulangn
kali s
hanya akan terdiri dari ASCII yang dapat dicetak (kode menunjuk0x20 (space)
ke0x7E (~)
)
Uji kasus
s, n => output
"Hello, World!", 3 => "HHHellllo, Worrrld!!!"
"Code golf", 1 => "Code golf"
"abcdefghijklm", 10 => "aaaaaaaaaabcdefghijkkkkkkkkkklm"
"tesTing", 6 => "ttttttesTingggggg"
"very very very long string for you to really make sure that your program works", 4 => "vvvvery veryyyy verrrry loooong sssstrinnnng foooor yoooou toooo reaaaally makeeee surrrre thhhhat yyyyour proggggram workkkks"
s
sebagai array karakter?s
" <- apakah ini persyaratan yang ketat (menimpa string asli) atau apakah tidak apa-apa untuk hanya menampilkan hasil akhir?Jawaban:
Jelly , 3 byte
Input diambil sebagai s, n .
Cobalah online!
Bagaimana itu bekerja
sumber
E1 B8 A2 73 C3 97
Jelly ,
65 byte-1 byte berkat Nun bocor (gunakan perkalian string Python.)
Program lengkap, menerima dua argumen baris perintah, string dan nomor, dan mencetak hasilnya.
Cobalah online!
Bagaimana?
sumber
x
lupa×
; Terima kasih.C3 97 4A 6D C2 A5 C2 A6
JavaScript (ES6), 46 byte
Mengambil input dalam sintaks currying
(s)(n)
.Uji kasus
Tampilkan cuplikan kode
sumber
Proton , 44 byte
Cobalah online!
sumber
C # (.NET Core) ,
8482 byteCobalah online!
sumber
i++
dan mengubahn[i],i%m<1?m:1
ken[i],i++%m<1?m:1
.n=>m=>...
05AB1E ,
87 byte-1 byte terima kasih kepada @Emigna
Cobalah online!
Penjelasan
sumber
ôʒć²×ì?
}
vy
adalah satu foreach,ε
yang lain. Anehnya,ε
tidak berfungsi.PowerShell , 51 byte
Cobalah online!
Mengambil input sebagai
char
-array$a
dan angka$n
. Loop melalui$a
dan setiap iterasi menghasilkan huruf saat ini$_
atau huruf saat ini dikalikan dengan$n
, berdasarkan indeks ke pseudo-ternary. Indeks memilih antara keduanya berdasarkan incrementing$i
dan kemudian modulo$n
. Surat-surat itu kemudian-join
disatukan kembali dan senarnya ditinggalkan di dalam pipa; output tersirat.sumber
Python 2 ,
5453 byteSunting: Disimpan 1 byte berkat @Rod
Cobalah online!
sumber
x[i]
dan[1,n][i%n<1]
menghemat ruangAlice , 25 byte
Cobalah online!
Penjelasan
sumber
R ,
827675 byteCobalah online!
Sebuah fungsi; mengambil string
s
dan integern
, dan mencetak versi yang diulang ke stdout.Penjelasan:
R , 55 byte
Cobalah online!
Algoritma yang sama seperti di atas, tetapi dengan
S
diambil sebagai daftar karakter individu.sumber
Python 2 , 57 byte
Cobalah online!
sumber
enumerate
menjadi lebih pendek?range(len())
pada akhirnya akan lebih lamaPython 2 , 53 byte
Cobalah online!
sumber
Japt , 8 byte
Uji secara online!
Penjelasan
Saya harus menghargai ide yang digunakan
ù
untuk jawaban @ Shaggy di sini . Saya tidak tahu bahwa saya akan pernah memikirkannya sendiri ...sumber
ë
, untuk buang air besar & cekikikan, tetapi gagal total!J, 17 byte
(...) # ]
semua yang ada di parens menciptakan string untuk kata kerja "copy" bawaan J. Jadi, misalnya, jika argumen kiri adalah 3, itu menciptakan string yang3 1 1
diulang sesuai kebutuhan untuk sama dengan jumlah karakter dalam argumen kanan]
, yang berisi string. Artinya,#
selesaikan masalahnya secara langsung, dengan asumsi kita dapat memberikan argumen kiri yang benar:4
seharusnya4 1 1 1
diulang, dan seterusnya.#@]$[,1#~<:@[
, kita melihatnya menggunakan bentuk kata kerja J$
di tengah - itulah kata kerja utama dari frasa ini ...$
adalah#@]
, artinya panjang#
arg yang tepat]
.$
adalah[,1#~<:@[
, kereta 5 kata kerja. Kereta pertama yang dieksekusi adalah ...1#~<:@[
, yang berarti 1 disalin#~
(bentuk salinan pasif) satu kurang dari<:
arg kiri[
. Hasil ini diteruskan ke garpu final:[, ...
artinya ambil arg kiri, dan tambahkan hasil yang baru saja kita hitung, yang merupakan untaian1
s.Cobalah online!
sumber
]#~[^0=(|i.@#)
selama 14 byteC # (.NET Core) , 61 + 18 = 79 byte
Cobalah online!
sumber
Perl 5,
37, 29 +1 (-p) byte-8 byte berkat komentar Tom.
Cobalah secara Online
sumber
$n=<>;
alih-alihBEGIN
blok dan adan
di baris input berikutnya dan ganti$-[0]
dengan"@-"
karena hanya angka pertama yang dievaluasi sebagai perbandingan. Juga, jika Anda mengambil inputn
via-i
Anda hanya dapat menggunakan$^I
alih-alih mendeklarasikan dan menggunakan$n
, tetapi karena ini adalah non-standar mungkin tidak terbang ... :)6502 rutin kode mesin , 50 byte
Ini adalah subroutine posisi-independen yang mengharapkan pointer ke string input (0-dihentikan alias C-string) di
$fb
/$fc
, pointer ke buffer output di$fd
/$fe
dan jumlah (n
) di$ff
. Ini menggunakan pengindeksan sederhana, sehingga terbatas pada panjang output maksimum 255 karakter (+ 0 byte) karena arsitektur 8bit.Penjelasan (dikomentari pembongkaran):
Contoh program kode mesin C64 yang menggunakannya :
Ini adalah program assembler gaya- ca65 untuk C64 menggunakan rutin ini (diimpor sebagai
rep
):Demo online
Penggunaan:,
sys49152,"[s]",[n]
missys49152,"Hello, World!",3
Penting: Jika program dimuat dari disk (seperti dalam demo online), keluarkan
new
perintah terlebih dahulu! Ini diperlukan karena memuat program mesin menghancurkan beberapa pointer BASIC C64.sumber
Java 8,
10076 byte-24 byte terima kasih kepada @ OliverGrégoire .
Penjelasan:
Coba di sini.
sumber
n->s->{int i,k=0;for(char c:s)for(i=k++%n<1?n:1;i-->0;)System.out.print(c);}
(dengan achar[]
, alih-alihString
.)MATL ,
107 byte-3 byte terima kasih kepada Luis Mendo!
Cobalah online!
Mengambil input sebagai
n
dan kemudianS
sebagai array string / char.sumber
Haskell ,
5146 byteTerima kasih @Laikoni karena telah menyelamatkan saya 5 byte!
Cobalah online!
Penjelasan / Tidak Diundang
Operator
c <$ [a..b]
mengganti setiap elemen daftar[a,a+1...b]
denganc
- jadi hanya golfreplicate
:sumber
Arang , 14 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Mengambil input dalam urutan
n
,s
.sumber
V , 13 byte
Cobalah online!
Ini adalah solusi yang sangat bodoh.
òlhÀälÀlÀ<M-->l
harus bekerja, tapi aku tidak bisa untuk kehidupan saya memahami mengapa, terutama karena secara manual melakukanlhÀälÀlÀ<M-->l
diulang beberapa kali melakukan pekerjaan.Hexdump:
Penjelasan:
sumber
'l' for right
... Saya kira itu hal peninggalan Vim? Kalau tidak ... mengapa ?l
benar di vim. mungkin secara ortografis mundur, tetapi secara geometris benar:l
adalah kunci huruf paling kanan dari baris tengah.Pyth , 12 byte
Coba di sini.
sumber
Python 3 , 58 byte
Bekerja untuk bermain golf.
Saya tahu sudah ada jawaban Python lain, tapi saya pikir saya akan memposting yang satu ini juga karena skornya cukup baik dibandingkan dengan yang lain, meskipun berfungsi penuh dan bukan lambda.
Mengambil input sebagai parameter fungsi, dan mencetak ke
STDOUT
.Cobalah online!
Kurang dari satu byte (57), saya memberi kode lambda, namun jawaban yang serupa telah diposting oleh pengguna lain:
sumber
Brain-Flak (BrainHack) , 122 + 3 (
-A
) = 125 byteSaya yakin ini terlalu lama, tetapi saya menghabiskan cukup banyak waktu mencari dan tidak dapat menemukan perbaikan.
Cobalah online!
sumber
05AB1E ,
1211 byteCobalah online!
Penjelasan
sumber
Mathematica, 71 byte
Cobalah online!
disimpan -2 byte dengan mendengarkan user202729
sumber
Map
lebihCharacters
mungkin lebih pendek.K (oK) ,
2319 byteLarutan:
Cobalah online!
Contoh:
Penjelasan:
Catatan:
sumber
Excel VBA, 71 Bytes
Fungsi jendela langsung VBE anonim yang mengambil input dari jarak
[A1:B1]
dan keluaran ke jendela langsung VBE.sumber