Program / fungsi Anda, dll. Akan mengambil 2 input. Yang pertama adalah daftar siapa yang datang ke pestaku dan kapan. Contoh:
Kevin 13:02
Ruby 5
Sam 3
Lisa 6
Bob 12
Apa artinya? Itu berarti bahwa Kevin pertama-tama datang ke pestaku (pukul 13:02, waktu 24 jam), kemudian Ruby 5 menit kemudian, kemudian Sam 3 menit kemudian, kemudian Lisa 6 menit kemudian, dan terakhir Bob 12 menit kemudian.
Input kedua adalah ketika pesta saya dimulai. Contoh:
13:15
(Waktu 24 jam). Keluaran Anda haruslah daftar orang-orang yang terlambat. (Siapa pun yang tepat waktu baik-baik saja.) Contoh perhitungan (hanya misalnya, jangan tampilkan ini)
Kevin 13:02
Ruby 13:07
Sam 13:10
Lisa 13:16
Bob 13:28
Lisa dan Bob tiba setelah 13:15
itu, oleh karena itu program ini harus mencetak "Lisa, Bob".
Masukan asumsi
- Input 1 akan selalu berupa nama (regex
[A-Z][a-z]*
), lalu spasi, lalu waktu 24 jam dalam formulirhours:minutes
di baris pertama, lalu nama, spasi, dan bilangan bulat positif (jumlah menit kemudian) pada baris berikutnya . Akan selalu ada setidaknya 1 baris. - Jika ingin, Anda dapat mengambil input 1 dengan karakter lain alih-alih sebagai pemisah baris.
- Input 2 akan dalam format
hours:minutes
. - Anda dapat mengambil input Anda sebagai satu string yang dipisahkan oleh karakter apa pun jika Anda mau. Ini opsional.
- Jangan khawatir tentang crossover hari. Pesta saya tidak pernah berakhir
23:59
.
Aturan keluaran
- Output dapat berupa nilai pengembalian fungsi atau string yang digemakan ke STDIN, file, dll. Anda harus mengembalikan string atau array / daftar.
- Jika Anda mengembalikan string, itu harus setiap orang yang terlambat (urutan tidak masalah), dipisahkan oleh pembatas non-alfanumerik.
- Jika Anda mengembalikan array / daftar, itu harus daftar semua orang yang terlambat.
(regex [A-Z][a-z]*
)" Apakah ini menunjukkan bahwa nama dapat kosong?23:59
?Jawaban:
MATL , 31 byte
Input pertama menggunakan spasi alih-alih jeda baris (diizinkan oleh tantangan).
Output menggunakan jeda baris sebagai pemisah.
Cobalah online!
Penjelasan
sumber
JavaScript (ES6),
9897 byteDisimpan 1 byte berkat Neil
Membawa daftar tamu
l
dan waktu pestah
dalam sintaks currying(l)(h)
. Mengharapkan linebreak tambahan pada daftar. Mengembalikan daftar nama yang dipisahkan oleh spasi sepertiLisa Bob
.Diformat dan dikomentari
Demo
sumber
(.*) (.*)\n
bekerja(.*)
akan cocok dengan seluruh baris.PHP,
118 98 9591 bytemengambil input dari argumen baris perintah (Anda dapat menafsirkannya sebagai garis yang dipisahkan oleh spasi jika Anda mau); mencetak nama tanpa pembatas. Jalankan dengan
-r
atau coba online .edit 1: disimpan 20 byte dengan pencetakan langsung
edit 2: disimpan 3 byte dengan menghapus pembatas
edit 3: disimpan 4 byte dengan mengeksploitasi bahwa integer polos bukan tanggal yang valid untuk
strtotime
kerusakan
sumber
c, 178 byte
Cobalah online
sumber
JavaScript ES6, 185 byte
Cobalah online!
sumber
f('Kevin 13:02\nRuby 5\nSam 3...
PowerShell ,
215196180 byteCobalah online!
Kira-kira 1/3 dari ini adalah input parsing, jadi saya tidak yakin seberapa jauh saya bisa golf itu.
Mengambil input
$a
sebagai string nama dan waktu / menit yang dibatasi koma, dan$b
sebagaihh:mm
string. Pertama, kita-split
$a
aktif,
, simpan hasil pertama ke dalam$x
dan sisanya ke dalam$a
, dengan gips ulang eksplisit$a
sebagaiarray
(sehingga loop kemudian bekerja dengan baik). Kita inisialisasi hashtable kita$z
, atur$i
dan$j
berada$x
-split
di whitespace, dan atur$z[$i]
menjadidate
of the$j
(disimpan$y
untuk digunakan nanti).Kemudian kami mengulangi sisanya
$a
. Setiap iterasi, kami melakukan hal yang sama --split
string di whitespace, mengatur$z
indeks yang sesuai menjadi lebih banyak menit di luar tempat kami berada saat ini. Ini menggunakan trik nama properti singkat untuk menyimpan beberapa byte, menggunakan|% *es $j
bukan.AddMinutes($j)
.Akhirnya, kami
.GetEnumerator()
(lagi menggunakan trik) dari hashtable kami, danWhere-Object
pilih entri-entri denganvalue
yang-g
reatert
han$b
(yaitu, mereka terlambat ke pesta). Kami kemudian memilih hanya.Name
daripadanya. Output adalah sebagai array implisit, yang defaultWrite-Output
menyisipkan baris baru di antara.Menyelamatkan banyak terima kasih kepada briantis untuk mengingatkan saya bahwa [array] adalah suatu hal. Dan banyak lagi untuk tip nama properti singkat.
sumber
$x,[array]$a=$a-split','
?[array]
adalah pemeran yang valid. Ha ha. Terlalu banyak bermain golf, kurasa.GetEnumerator
danAddMinutes
merupakan kandidat yang baik untuk%
sintaksis metodePython 2 ,
140.148,144 byteCobalah online!
Masukkan format:
sumber
'Kevin 13:47;Ruby 5;Sam 3;Lisa 6;Bob 12;14:00'
tidak mencetak apa-apa, meskipun Lisa dan Bob masih terlambat.Bash,
135124115 byteCobalah online!
sumber
CJam,
66545854514946 byteInput 1 diberikan melalui STDIN, input 2 diberikan sebagai string pada stack. Output adalah array di stack. Pemisah untuk input 1 adalah spasi, mis
Kevin 13:02 Ruby 5 Sam 3 Lisa 6 Bob 12
.Jejak tumpukan:
Penjelasan:
K
mengubah antara waktuhh:mm
dan angka yang mewakili berapa menit sejak tengah malam.[782 5 3 6 12]
.[782 787 790 796 808]
, yang memberi waktu ketika semua orang datang.sumber
JavaScript,
285283 byteMembawa daftar tamu
i
dan waktu pestap
dalam sintaks currying(i)(p)
. Mengembalikan daftar nama yang dipisahkan koma sepertiLisa,Bob
.Saya tahu ini cukup panjang dan saat ini berada di tempat terakhir dengan margin yang adil, tapi itulah yang bisa saya kemukakan.
sumber
C # ,
269267 byteGolf
Tidak disatukan
Tidak terbaca dibaca
Kode lengkap
Rilis
- 2 bytes
- Terima kasih untuk VisualMelon269 bytes
- Solusi awal.Catatan
sumber
using D=System.DateTime;
arahan (jangan lupa untuk menggantivar
s!). Anda harus benar-benar memberikan tipe untuk parameter lambda untuk membuat kode ini sama sekali tidak ambigu (yaitu(string l,string f)
). Saya juga berpikir ada sedikit bug, Anda perluh>s
daripadah>=s
(tabungan 1byte!) Sesuai "(Siapa pun yang tepat waktu baik-baik saja.)". Bisakah kamu melakukannyah.Ticks<1
? Anda mungkin menemukan nullableDateTime
lebih murah daripada menggunakanDateTime.Min
, tetapi saya belum memeriksa implikasi lengkapnya di sini. Dengan menggunakan klausa,==D.Min
harus bekerja juga.h>s
Saya akan melakukannya.h.Ticks<1
dan yang ini juga.usings
dan dengan lambdas, saya tidak dapat menemukan apa pun yang mengatakan ini secara eksplisit pada meta, tetapi pertanyaan ini sangat menyarankan itu diizinkan. Ada konsensus yang masuk akal bahwa jenis parameter eksplisit harus diminta (saya harus menambahkan bahwa saya mendukung). Omong-omong, Mod ada untuk menjaga hal-hal sipil dari perspektif SE, bukan untuk menegakkan aturan PPCG sendiri.usings
, sebagian besar karena saya kemudian akan merasa bahwa itu akan memerlukan kode lengkap, maka saya mengatakan bahwa saya ragu saya dapat melakukan fungsi sebagai solusi - mungkin menambahkan dua blok, satu untukusing
s dan satu lagi untuk fungsi lambda? Tentang konsensus, saya pikir menambahkan yang hilangFunc<...> f = ...;
akan menyelesaikannya, meskipun harus ditentukan nama lengkapnyaSystem.Func<...> f = ...;
string s
dengan C # 7 (6? Saya tidak ingat) sintaks) jika Anda lebih suka tidak mencampur lambdas dan usings.CJam ,
4341 byteCobalah online!
Penjelasan
sumber
Lua,
211206 BytesCodegolf pertama tahun ini bagi saya, masih harus golf.
Sunting: Disimpan 5 Bytes dengan menggunakan singkatan untuk
string.match
Penjelasan
jika Anda ingin mencoba kode ini, Anda dapat menggunakan potongan berikut
sumber
Java,
346304284275 byteDetil Live
sumber
String[] n,
danString[] a
?Integer.parseInt(n)
dengannew Short(n)
. Dan berdasarkan komentar dari tantangan,LisaBob
juga merupakan output yang valid, sehingga Anda dapat mengubahprintln
keprint
.Batch, 163 byte
Mengambil input pada STDIN. Baris pertama adalah waktu mulai pesta, lalu daftar tamu. Menggunakan trik @ Arnauld untuk mengubah jam: mm menjadi menit.
Input Batch yang lebih disukai untuk ini adalah sebagai serangkaian parameter baris perintah (dimulai dengan waktu pesta, lalu setiap tamu dan waktu sebagai argumen terpisah). Ini hanya akan membutuhkan 129 byte:
sumber
Groovy, 121 byte
sumber
PowerShell,
170160 byteCobalah online!
sumber