Terkait: Katakan padaku berapa banyak masalah matematika yang harus saya lakukan!
Tantangan
Dengan daftar integer ketat L yang benar-benar positif, dan integer 3 ≤ N ≤ panjang L, ganti bilangan bulat tengah dari berturut-turut bilangan bulat integer L panjang ≥ N dengan tanda hubung tunggal -
.
Aturan
- Spasi horisontal tidak relevan.
- Anda dapat secara opsional mempertahankan karakter pengantar, pemisah, dan terminator dari format daftar standar bahasa Anda. Lihat Format contoh , di bawah ini.
Contoh data
Semua contoh ini digunakan L = 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
.
N = 3
→ 3 5 - 8 10 - 12 14 16 - 22 24
N = 4
→ 3 5 - 8 10 11 12 14 16 - 22 24
N = 5
→ 3 5 6 7 8 10 11 12 14 16 - 22 24
N = 8
→ 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
Format contoh
Untuk input
L = [3,5,6,7,8,10,11,12,14,16,17,18,19,20,21,22,24]
dan N = 3
semua baris di bawah ini adalah contoh respons yang valid, baik sebagai daftar aktual maupun sebagai string:
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
[3,5,-,8,10,-,12,14,16,-,22,24]
[3,5-8,10-12,14,16-22,24]
3,5-8,10-12,14,16-22,24
Hal yang sama berlaku dengan format daftar lain, suka {1 2 3}
dan (1; 2; 3)
lain - lain. Meminta!
-
atau kita diizinkan menggunakan simbol yang berbeda?_
sehingga saya dapat tetap beroperasi pada array numerik dalam J.'-'
. Anda mungkin juga dapat merangkaikan semuanya sebelum memasukkan tanda hubung, bukan?[3,5,-8,10,-12,14,16,-22,24]
(ini tampaknya merupakan format yang paling masuk akal dalam hal jenis)Jawaban:
Python 2 ,
132115 byte-17 byte berkat Leaky Nun
Cobalah online!
sumber
while t+i==x[i]:
bekerja Atau apakah saya melewatkan sesuatu?i
menjadi lebih tinggi dari ukuranx
Jelly ,
26 2523 byte-2 byte terima kasih kepada Erik the Outgolfer (dengan membawa pernyataan if ke dalam tautan utama)
Tautan diad mengembalikan daftar dalam
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
format.Cobalah online! (footer terpisah dengan spasi, untuk mencetak format contoh data).
Bagaimana?
sumber
Pyth, 23 byte
Cobalah online
Bagaimana itu bekerja
sumber
Japt , 24 byte
Cobalah online!
Penjelasan
sumber
Mathematica, 128 byte
memasukkan
keluaran
Cobalah online!
sumber
APL, 38 byte
sumber
PHP 7,
137 136 134 117 110108 byteDiambil
L
dari argumen pertama, daftarkan elemen setelahnya. Jalankan dengan-nr
atau coba online .Ganti
$L=($a=$argv)
dengan$a=$argv,$L=
(+1 byte) untuk PHP <7.kerusakan
sumber
Retina , 101 byte
Cobalah online! Mengambil daftar yang dipisahkan ruang
L
pada baris pertama dan integerN
pada baris kedua. Penjelasan: Tahap pertama mengubah input menjadi unary. Tahap kedua mengubah ruang antara bilangan bulat berurutan menjadiX
. Tahap ketiga mencari deret beruntun yang panjangnya kurang dariN
dan mengubahX
kembali ke spasi. Tahap keempat mengubahX
s menjadi-
(ini adalah 3 byte lebih pendek daripada menggunakan-
s di tempat pertama.) Tahap kelima menghapus semua bilangan bulat yang masih tersisa di tengah proses, dan jugaN
, sementara tahap terakhir mengubah kembali ke desimal.sumber
Ruby, 68 byte
Mengembalikan string seperti misalnya
3,5-8,10-12,14,16-22,24
.Cobalah online!
sumber
J , 40 byte
Cobalah online!
Gunakan
_
bukan-
.Penjelasan
sumber
Jelly,
393736 byteCobalah online
Membawa array melalui argumen, dan integer via STDIN. TIO link menggunakan footer
ÇG
sehingga output dipisahkan oleh ruang.Bagaimana? (Array:
a
, Integer:n
)Saya kira saya jatuh ... datar satu ini.
sumber
JavaScript (ES6),
126119 byteFungsi anonim. Mengambil input dalam urutan
Array L, Integer N
dan mengembalikan hasilnya sebagai string yang dipisahkan koma.Tampilkan cuplikan kode
sumber
e=>c=>
.Dyalog APL v16.0,
82807876756562 byteWow, ini ... buruk. Mungkin ada solusi yang jauh lebih pendek dengan stensil.
Cobalah online!
Selamat datang saran bermain golf!
sumber