Diberikan daftar rentang tanggal r
sebagai input, output atau kembalikan rentang apa pun yang tidak ditemukan di r
.
Demi contoh ini, input akan dalam YYYY-MM-DD
format.
Katakanlah Anda memiliki tiga rentang tanggal:
[2019-01-01, 2019-02-01]
[2019-02-02, 2019-04-05]
[2019-06-01, 2019-07-01]
Anda dapat melihat bahwa ada celah di antara 2019-04-05
dan 2019-06-01
.
Output akan menjadi celah itu: [2019-04-06, 2019-05-31]
Aturan
- Input dan output dapat dalam format tanggal atau pengumpulan yang wajar, asalkan konsisten.
- Asumsikan input tidak dipesan.
- Rentang tanggal Anda tidak harus
[latest, earliest]
, tetapi harus mengikuti aturan 2. - Asumsikan tidak ada tanggal yang tumpang tindih dalam input
Kasus uji:
Memasukkan: [[2019-01-01, 2019-02-01],[2019-02-02, 2019-04-05],[2019-06-01, 2019-07-01]]
Keluaran: [[2019-04-06, 2019-05-31]]
Memasukkan: [[2019-01-01, 2019-02-01],[2018-02-02, 2018-04-05],[2019-06-01, 2019-07-01]]
Keluaran: [[2018-04-06, 2018-12-31], [2019-02-02, 2019-05-31]]
Memasukkan: [[2019-01-01, 2019-02-01],[2019-02-02, 2019-03-02],[2019-03-03, 2019-07-01]]
Keluaran: []
Memasukkan: [[2019-01-01, 2019-02-01], [2019-11-02, 2019-11-20]]
Keluaran: [[2019-02-02, 2019-11-01]]
Memasukkan: [[2019-01-01, 2019-02-01],[2019-02-03, 2019-04-05]]
Keluaran: [[2019-02-02, 2019-02-02]]
atau[[2019-02-02]]
YYYY-MM-DD
karena format saat ini sama-sama asing bagi banyak orang, dan membuat lebih sulit untuk diuraikan karena menggunakan hari-bulan-bulan≤12 yang kecil.Jawaban:
APL (Dyalog Extended) ,
282524 byteFungsi awalan diam-diam anonim. Argumen dan hasil adalah matriks 2 kolom dari angka hari sejak zaman, setiap baris mewakili rentang.
Cobalah online! Fungsi
In
pra-prosesor dikonversi dari daftar pasangan daftar 3-elemen (tanggal dalam urutan ISO) ke matriks 2-kolom IDNs, Nomor Hari Internasional (hari sejak 1899-12-31). FungsiOut
post-prosesor mengkonversi dari matriks IDNs ke matriks daftar 3-elemen.∧
urutkan baris naik1⌽
putar tanggal satu langkah ke kiri secara siklikal⍢,
sambil diratakan (diratakan) - setelah itu, bentuk kembali ke bentuk semula1 ¯1+
tambahkan satu dan negatif⍤1
menggunakan daftar itu untuk setiap baris∘
hasil{
...}
lambda berikut:⍵
argumen-⍨/
kurangi tanggal di sebelah kiri dari tanggal di sebelah kanan,1<
topeng di mana perbedaan melebihi satu (yaitu di mana rentang tidak berdekatan)⍵⌿⍨
filter baris oleh topeng itusumber
C # (Visual C # Interactive Compiler) , 108 byte
Output dengan mencetak dalam format
DD/MM/YYYY 12:00:00 AMDD/MM/YYYY 12:00:00 AM
. Akan menyebabkan pengecualian IndexOutOfRange, yang tidak masalah per konsensus meta.Cobalah online!
Jika kita mengambil input dalam bentuk hari sejak zaman unix, kita bisa mendapatkan ini ke ...
83 byte
Cobalah online!
Kita dapat menurunkan ini lebih jauh dengan
/u:System.Array
bendera, untuk ...78 byte
Cobalah online!
sumber
Perl 5, 130 byte
TIO
sumber
Bash, 125 byte
TIO
sumber
Perl 6 , 46 byte
Cobalah online!
Membawa daftar
Date
pasangan.sumber
PHP,
208 197 190177 bytekeren keren duduk di dinding ... meskipun pendekatan baru memiliki potensi golf.
fungsi mengambil berbagai rentang [mulai, akhir] dalam format ISO, mencetak interval interval. Cobalah online .
kerusakan
sumber
Jelly , 13 byte
Jelly (saat ini) tidak memiliki tanggal bawaan, jadi ini menggunakan hari sejak zaman.
Daftar input rentang (pasangan bilangan bulat) mungkin dalam urutan campuran dan arah campuran.
Hasilnya adalah daftar rentang naik dalam urutan naik.
Cobalah online!(format footer untuk menampilkan daftar kosong sebagai
[]
)Bagaimana?
Catatan: Ini bergantung pada jaminan bahwa "tidak ada tanggal yang tumpang tindih dalam input" sebagaimana dinyatakan dalam aturan.
sumber
C # (Visual C # Interactive Compiler) , 103 byte
Cobalah online!
Input adalah daftar tupel tanggal mulai / berakhir. Keluarkan setiap rentang yang hilang ke STDOUT.
sumber
R , 88 byte
Cobalah online!
Ini membutuhkan kerangka data rentang tanggal sebagai input dan output bingkai data dengan rentang yang hilang. Saya cukup yakin ini bisa bermain golf lebih banyak, tetapi saya mengalami masalah dengan
c
,cbind
dan yang lainnya menanggalkan kelas kencan.sumber