Awalnya diposting (dan dihapus) oleh @Tlink , yang kemungkinan besar terinspirasi dari pertanyaan StackOverflow ini .
Karena itu memalukan karena terhapus, karena sepertinya tantangan yang bagus secara umum, saya pikir saya akan memposting ulang dengan format dan aturan yang tepat. (Saya sudah mencoba menghubungi @Tlink dan mendapatkan izin untuk mempostingnya, tetapi dia tidak merespons lagi, itulah sebabnya saya memutuskan untuk mempostingnya sendiri sekarang.)
Input: Enam digit.
Keluaran: Baik waktu valid pertama atau terakhir dalam format 24 jam ( 00:00:00
sampai 23:59:59
). (Anda dapat memilih sendiri apakah Anda menampilkan waktu valid pertama atau terakhir.)
Contoh:
Ketika input 1,8,3,2,6,4
, waktu berikut dapat dibuat:
12:36:48 12:38:46 12:46:38 12:48:36
13:26:48 13:28:46 13:46:28 13:48:26
14:26:38 14:28:36 14:36:28 14:38:26
16:23:48 16:24:38 16:28:34 16:28:43
16:32:48 16:34:28 16:38:24 16:38:42
16:42:38 16:43:28 16:48:23 16:48:32
18:23:46 18:24:36 18:26:34 18:26:43
18:32:46 18:34:26 18:36:24 18:36:42
18:42:36 18:43:26 18:46:23 18:46:32
21:36:48 21:38:46 21:46:38 21:48:36
23:16:48 23:48:16
Jadi kita akan menampilkan salah satu 12:36:48
atau 23:48:16
dalam hal ini, menjadi yang pertama / terakhir.
Aturan tantangan:
- Nyatakan apakah Anda menampilkan waktu valid pertama atau terakhir dalam jawaban Anda.
- I / O fleksibel. Input dapat berupa enam bilangan bulat yang terpisah; string yang berisi enam digit; daftar / array bilangan bulat; satu nomor (mungkin oktal); dll. Keluaran dapat berupa daftar / array angka yang dipesan dengan benar; sebuah String dalam format
HH:mm:ss
/HHmmss
/HH mm ss
; setiap digit dicetak dengan pembatas baris baru; dll. Panggilan Anda. - Anda diizinkan untuk mengambil digit dalam urutan apa pun yang Anda inginkan, sehingga mereka sudah dapat diurutkan dari terendah ke tertinggi atau sebaliknya.
- Jika tidak ada waktu yang valid dapat dibuat dengan angka yang diberikan (yaitu
2,5,5,5,5,5
), jelaskan dengan cara apa pun yang Anda inginkan. Dapat mengembalikannull
/false
;"Not possible"
; crash dengan kesalahan; dll. (Anda tidak dapat menampilkan waktu yang tidak valid seperti55:55:52
, atau waktu yang valid seperti lainnya00:00:00
.) Sebutkan bagaimana ia menangani input yang tidak dapat dibuat waktu yang valid. - Anda tidak boleh menampilkan semua waktu yang valid yang mungkin. Hanya yang paling awal / terbaru yang akan di-output / dikembalikan.
24
untuk jam (yaitu24:00:00
), atau60
untuk menit / detik (yaitu00:60:60
) tidak valid. Kisarannya adalah[00-23]
untuk jam dan[00-59]
untuk menit dan detik.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program lengkap. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Kasus uji:
Input: Earliest output: Latest output:
1,2,3,4,6,8 12:36:48 23:48:16
2,5,5,5,5,5 None possible None possible
0,0,0,1,1,1 00:01:11 11:10:00
1,1,2,2,3,3 11:22:33 23:32:11
9,9,9,9,9,9 None possible None possible
2,3,5,5,9,9 23:59:59 23:59:59
1,2,3,4,5,6 12:34:56 23:56:41
0,0,0,0,0,0 00:00:00 00:00:00
1,5,5,8,8,8 18:58:58 18:58:58
1,5,5,5,8,8 15:58:58 18:58:55
1,1,1,8,8,8 18:18:18 18:18:18
06:08:60
valid, mengingat ada lompatan kedua pada menit itu?
60
selama menit dan detik tidak valid. Rentang adalah [00-23]
, [00-59]
, dan [00-59]
. Akan mengklarifikasi ini dalam tantangan.
23:48:16
keluaran yang valid untuk contoh?