Ini jelas ellipsisessieses.
Terinspirasi oleh pesan obrolan .
Tantangan anda
Diberikan daftar atau spasi atau string kata yang dipisahkan koma, ellipsisessies menjelaskannya.
Untuk ellipsisessieses-ify sebuah kata:
- Mulailah dengan kata.
- Tambahkan huruf pertama dari kata aslinya hingga akhir.
- Tambahkan 2 huruf terakhir dari kata aslinya ke akhir.
- Tambahkan huruf kedua hingga terakhir dari kata aslinya hingga akhir.
- Tambahkan huruf pertama dari kata aslinya hingga akhir.
- Tambahkan huruf terakhir dari kata aslinya hingga akhir.
- Ulangi langkah 5 & 6 sekali.
- Kamu sudah selesai!
Anda dapat mengasumsikan:
- Kata-kata input hanya akan alfanumerik
- Input & output dapat berupa string atau daftar yang dipisahkan oleh spasi
- Input hanya akan berisi kata-kata
- Panjang kata-katanya minimal 2 huruf
- Input akan cocok dengan regex
/^[a-z0-9]{2,}( [a-z0-9]{2,})*$/i
- Anda dapat memiliki format input dan output yang berbeda
- Akan datang lebih banyak lagi...
Kasus uji:
ellipsis -> ellipsisessieses
goat -> goatgttagtgt
covfefe -> covfefeceefcece
programmer5000 -> programmer5000p000p0p0
up vote down goat -> upuppuupup voteveetveve downdnnwdndn goatgttagtgt
it is golf yo -> itittiitit isissiisis golfgfflgfgf yoyooyyoyo
crossed out 44 is still 44 -> crossedcddecdcd outottuotot 4444444444 isissiisis stillslllslsl 4444444444
Answerestrearar ininniinin bytesbssebsbs terpendek menangwssnwsws!
Jawaban:
JavaScript (ES6),
5857 byteNB: Ini ternyata menggunakan trik yang sama dengan Jonathan Allan dalam jawaban Jelly ini (meskipun saya perhatikan setelah memposting).
Disimpan 1 byte berkat Jonathan Allan
Bekerja pada array string.
Uji kasus
Tampilkan cuplikan kode
sumber
21102121
dengan01120101
dann-2
dengan-n
.Jelly ,
13 1211 byteProgram lengkap yang mengambil daftar daftar karakter dan mencetak output yang dipisahkan ruang.
Cobalah online!
Bagaimana?
Atau daftar kata-kata ke daftar kata-kata juga dimungkinkan dalam 11 byte :
⁽×ʠb3’
juga dapat diganti dengan4,⁵Bj-
untuk jumlah byte yang sama(
[4,10]
dalam biner[[1,0,0],[1,0,1,0]]
bergabung dengan-1
is[1,0,0,-1,1,0,1,0]
).sumber
K
karena sebagai tautan monadik daftar yang dikembalikan tidak akan menjadi satu level dalam, yang saya bayangkan mendorong lemah I / O terlalu jauh - yaitu untuk input["this", "is", "it"]
nilai pengembalian akan berada di[['t','h','i','s',"tssitsts"],['i','s',"issiisis"],['i','t',"ittiitit"]]
mana "..." adalah daftar karakter) dan membiarkannya untuk mencetak sebagai program penuh akan menghancurkannya all together asthistssitstsisissiisisitittiitit
)05AB1E , 12 byte
Cobalah online!
Penjelasan
sumber
Retina ,
5249 byte3 byte, terima kasih kepada Arnauld.
Cobalah online!
sumber
Python 2 , 56 byte
Cobalah online!
Saya pikir ini adalah FGITW tercepat saya dan bahkan tidak mengesankan. : P
sumber
Python 3 , 60 byte
Cobalah online!
sumber
Arang , 20 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Kebetulan hanya membaca jawaban @ Arnauld setelah mengkode ini tetapi ini pada dasarnya adalah sebuah port. Penjelasan:
sumber
-rs
bendera?-rs
apakah ada hanya untuk menonaktifkan pencetakan prompt input-rs
mode sebagai default?sed, 46 byte
Cobalah online!
sumber
JavaScript (ES6),
7460 byteMengambil input sebagai array, dan output array.
-9 byte berkat Programmer5000
Kasus uji:
Tampilkan cuplikan kode
sumber
Mathematica, 89 byte
sumber
Ellipsisessieses
dibangun? :(Pyth , 17 byte
Menggunakan trik yang sama seperti pada jawaban @ Jonathan .
Coba di sini! atau Lihat Test suite (Beri waktu).
Port solusi Python saya,
19 byte18 byte :sumber
Dyalog APL,
5149 byteMembutuhkan
⎕ML←3
-9 byte terima kasih kepada @ Adám dalam obrolan!
Cobalah online!
sumber
Paradoc (v0.2.10), 13? byte (CP-1252)
Cobalah online!
Mengambil daftar kata-kata, dan menghasilkan daftar kata-kata di tumpukan.
Variasi kecil pada trik base-3. Mungkin sudah waktunya untuk bekerja di pangkalan saya 250-kompresor apa pun.
Penjelasan:
(Pertanyaan penghitungan Byte: Sekarang saya benar-benar menunjukkan ini di TIO, ia mengambil daftar kata-kata di tumpukan dan menghasilkan daftar kata-kata di tumpukan, tetapi Anda tidak bisa berbuat banyak dengan daftar kata-kata itu) kecuali Anda menutup blok yang dimulai dengan μ. Haruskah saya menghitung penjepit penutup itu?)
sumber
Bahasa Wolfram / Mathematica, 66 byte
Mengocoknya dengan sangat cepat, mungkin ada sedikit peningkatan di sini atau di sana.
sumber
Perl 5 ,
5549 + 1 (-a) =5650 bytemenggunakan trik dari pos @ Arrnauld untuk menyimpan beberapa byte
Cobalah online!
sumber
Arang ,
3830 byte-8 byte berkat ASCII saja.
Cobalah online!Tautan adalah untuk versi verbose.
Perhatikan ruang trailing.
sumber
Java 8, 117 byte
Mengambil input sebagai String-array, dan memodifikasi array asli ini alih-alih mengembalikan yang baru untuk menghemat byte.
Kemungkinan besar bisa bermain golf lagi ..
Penjelasan:
Coba di sini.
sumber
C # (.NET Core) , 106 byte
Cobalah online!
Fungsi Lambda yang mengambil input sebagai array string, dan memodifikasi array asli untuk output
sumber