Deskripsi tantangan
Pada beberapa saluran di situs streaming populer, kedutan.tv pesan yang umum digunakan orang cenderung melakukan spam dalam obrolan untuk memancing orang agar mengirim spam ke "LUL" adalah
One more LUL and I'm out
LUL adalah emote populer yang digunakan untuk menyatakan bahwa sesuatu yang lucu terjadi saat streaming.
Segera meme dank menunjukkan potensi mereka dan parodi dari copy-pasta terjadi:
One more "One more LUL and I'm out" and I'm out
Yang merupakan pesan yang sama bersarang dalam dirinya sendiri. Dengan bilangan bulat non-negatif N
, hasilkan LUL-pasta N
dengan sendirinya mengikuti pola di bawah ini.
Standar kode-golf aturan berlaku, kode terpendek dalam byte menang.
Contoh input / output
0: One more LUL and I'm out
1: One more "One more LUL and I'm out" and I'm out
2: One more "One more "One more LUL and I'm out" and I'm out" and I'm out
...
7: One more "One more "One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out
Catatan
- Leading / trailing newlines diperbolehkan
- Kapitalisasi harus dipertahankan
- Kode Anda mungkin merupakan program atau fungsi lengkap
- Alih-alih mencetak, Anda dapat mengembalikan string atau yang setara dalam bahasa pilihan Anda
- Anda dapat mengindeks dari
1
bukan0
"
di awal dan akhir juga?You Only YOLO once --> YOYOLOO. You Only YOYOLOO Once --> YOYOYOLOOO
Jawaban:
Python 2 , 56 byte
Cobalah online!
Diindeks 1
sumber
[1:-1]
pada akhirnya memangkas tanda kutip ganda pada awal dan akhir?JavaScript,
57565452 byteCuplikan Tes:
Untuk beberapa alasan snippet camilan sedang bermasalah saat input
0
, tetapi ini bekerja sebaliknya. Sebut saja sepertif(4)
.Penjelasan
sumber
input
adalah atribut HTML yang tidak valid, mungkin ingin menghapusnya. Kedua, itu karena dibutuhkan input sebagai string, bukan angka. Begitu"0"
juga kebenaran sementara0
itu palsu. Cara termudah untuk mengatasinya adalah dengan meletakkan+
di depanthis.value
ketika Anda melewatinya.input
bidang tambahan :).replace
.Befunge, 91 byte
Cobalah online!
Ini adalah rincian kode sumber dengan berbagai bagian komponen disorot.
Kita mulai dengan membaca hitungan berulang N , dan menyimpan dua duplikatnya dalam memori.
Kami kemudian menghitung N pertama , mendorong banyak salinan "dan saya keluar" ke tumpukan secara terbalik. Setiap salinan tambahan dipisahkan dari yang sebelumnya dengan kutipan. Kutipan dihasilkan dengan urutan
90g
(pada dasarnya membaca salinan dari baris pertama sumber), karena itulah cara terpendek untuk melakukannya.Setelah loop pertama ini selesai, kami mendorong "LUL" ke stack (secara teknis ini terbalik, tapi jelas tidak ada bedanya ketika itu adalah palindrome).
Lalu kita memiliki loop lain, membungkus melintasi batas kanan, ke sebelah kiri playfield, dan kemudian kembali lagi. Kali ini kita menghitung N kedua, mendorong banyak salinan "Satu lagi" ke tumpukan (sekali lagi terbalik). Dan lagi, setiap salinan tambahan dipisahkan dari yang sebelumnya dengan kutipan.
Setelah loop kedua selesai, seluruh frasa sekarang berada di tumpukan (terbalik), jadi kita hanya perlu menuliskannya.
sumber
"
. Terima kasih atas penjelasannya05AB1E ,
3029 byteCobalah online!
Tipe string yang berbeda tampaknya tidak cocok dengan baik, jadi untuk beberapa alasan saya harus mengakhiri loop dua kali.
sumber
C ++, 118 + 16 = 134 byte
#include<string>
- +16menggantikan "LUL" ke seluruh string N kali.
Adakah yang memiliki golf yang lebih baik?
Cobalah online!
Terima kasih banyak kepada Kritixi Lithos dan hvd , untuk, uh, bantuan besar-besaran.
sumber
<string>
pernyataan impor ke dalam bytecount, tidak yakinfor(int i=0;i<x;i++)
kefor(int i=0;i++<x;)
r.find("L")
lebih pendek darir.find("LOL")
2 byte :)Javascript (ES6), 68 Bytes
Sebut seperti
f(n)
.Anda juga dapat menyebutnya seperti
f(n, "LUL")
dan mengganti LUL dengan kata apa pun yang Anda inginkan.sumber
V ,
3937 byteDua byte dengan bantuan @KritixiLithos untuk membuat metode substitusi
Cobalah online!
Hexdump:
sumber
Java,
7977 byteGolf:
Tidak disatukan, dengan tes:
Output program:
sumber
"\""
menjadi'"'
(karakter tunggal) untuk menyimpan 2 byte.Python, 79 byte
Saya hanya ingin melakukan solusi rekursif, meskipun lebih lama dari jawaban lain.
Cobalah online
sumber
C #, 125 byte
sumber
Format
...string
kevar
untuk menyimpan dua byte.C,
140111 byteUpaya pertama saya pada pertanyaan golf .. Golfed:
Saya menyadari bahwa ini adalah output yang salah karena q (0) hanya memberikan LUL. Upaya selanjutnya:
Contoh program (diuji dengan GCC pada OSX):
Memberikan hasil
sumber
Mathematica,
6968 byteTerima kasih kepada Martin Ender karena telah menghemat 1 byte yang sulit ditemukan!
Fungsi tanpa nama mengambil argumen integer nonnegatif dan mengembalikan string.
Nest
menerapkan fungsi berulang kali pada argumen awal; dalam hal ini, fungsinya adalah mengelilingi argumennya dengan kata-kata dan tanda kutip yang sesuai. Kita mulai dari"LUL"
dan mengulangiN+1
waktu; yang menghasilkan tanda kutip yang tidak diinginkan melampirkan seluruh frase, tetapi[[2]]
hanya menyimpan barang-barang di antara mereka. Pada akhirnya,""<>
mengubah daftar yang sangat bersarang menjadi string tunggal.Pengajuan sebelumnya:
sumber
LUL
:""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&
[[2]]
! Begitulah cara mengatasi kutipan-kutipan pertama yang tidak diinginkan itu: DC #,
1198571 byteDisimpan 14 byte berkat @Luc
sumber
string.Format
dan membuat sarangnyaRetina , 51 byte
Cobalah online!
sumber
R, 97 byte
Tidak Disatukan:
sumber
R,
100 9792 byte"Satu lagi fungsi rekursif dan aku keluar"
Sunting: Ternyata pendekatan non-rekursif sedikit lebih pendek:
sumber
Japt , 39 byte
Terima kasih @ETHproduk untuk membantu.
Coba di sini!
sumber
Ruby, 51 byte
Diindeks satu. Cobalah online
sumber
PowerShell ,
7267 byteCobalah online!
sumber
"$('"One more '*($c=1+"$args"))LUL$(' and I''m out"'*$c)".Trim('"')
dicukur 5 dengan menggunakan trim () bukan sebuah bergabung untuk melewatkan akhir"
'sLua, 101 byte
Upaya string yang jelas. Ulangi
"One more
danand I'm out"
masukkan + 1 kali dengan tepat, denganLUL
inbetween, lalu hapus kutipan pertama dan terakhir.sumber
Haskell, 51 byte
Indeks dari 1.
sumber
LUL
tanda kutip.f -1="LUL"
, tapi saya tidak melihat cara menghapus tanda kutip tambahan tanpa banyak simbol baru.Ruby, 70 byte
Cukup loop untuk jumlah yang diberikan, mengelilingi string terakhir melalui string format setiap kali.
Indeks dimulai pada satu.
sumber
Ditumpuk, 54 byte
Coba di sini! Contoh penggunaan "fungsi":
Satu untuk 56 byte:
sumber
Python 3, 68 Bytes
def f(a):return('"One more '*a+'LUL'+(' and I%sm out"'%"'")*a)[1:-1]
sumber
*a
alih-alih*5
?CJam,
5149 byteCobalah online
Tidak Disatukan:
sumber
W
bukannya -1 untuk menghemat satu byte\"
dengan memiliki string tunggal dan menambahkan"
kedua ujungnya dengan`
. Kemudian saya perlu memisahkan string yang tidak bisa saya lakukan dengan panjang dan/
, karena bagian pertama lebih pendek. Jadi saya menggunakan linefeed sebagai pemisah dan melakukannyaN/
. Karena kami sekarang memiliki kedua bagian dalam daftar, kami dapat dengan mudah mengulang keduanya sekaligusf*
. DanLUL
dimasukkan di akhir dengan gabung sederhana (*
).Groovy, 54 byte
Cukup mudah, sama dengan jawaban python tetapi 2 byte lebih pendek. Itu juga 1-diindeks.
Cobalah secara Online!
sumber
Mathematica,
6563 BytesDua byte mati dengan memperhatikan tantangan memungkinkan pengindeksan 1.
sumber
PHP
Halo, sejauh ini saya menemukan dua cara untuk melakukan ini.
Cara penggantian 1-diindeks (121 byte) .
Cara rekursif (86 byte) .
sumber
C ++, 80 + 16 = 96 byte
#include<string>
- +16Tidak Disatukan:
Panggilan itu sendiri secara rekursif dan menggunakan penambahan string. Cukup lurus ke depan. Maksud saya apa lagi yang bisa saya katakan? Bahkan versi ungolfed pada dasarnya adalah satu baris.
Cobalah online!
sumber
Cheddar , 71 byte
Cobalah online!
sumber
_ f ->
sintaks yang mungkin menghemat beberapa byte