Orijinal olarak @Tlink tarafından yayınlanan (ve silinen) bu büyük olasılıkla bu StackOverflow sorusundan esinlenmiştir .
Genel olarak iyi bir meydan okuma gibi göründüğü için silinmesi utanç verici bir şey olduğundan, uygun biçimlendirme ve kurallarla tekrar göndereceğimi düşündüm. ( @Tlink ile iletişim kurmaya ve yayınlama iznini almaya çalıştım , ancak daha fazla yanıt vermiyor, bu yüzden şimdi kendim göndermeye karar verdim.)
Giriş: Altı hane.
Çıktı: 24 saatlik biçimde ( 00:00:00
arasında 23:59:59
) ilk veya son geçerli zaman . (İlk geçerli mi yoksa son geçerli saatte mi çıkacağınızı kendiniz seçebilirsiniz.)
Örnek:
Girişler olduğunda 1,8,3,2,6,4
, aşağıdaki zamanlar oluşturulabilir:
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
Bu nedenle , sırasıyla ilk / son olmak üzere ya 12:36:48
da 23:48:16
bu durumda çıktı veririz .
Meydan okuma kuralları:
- Cevabınızdaki ilk veya son geçerli zamanı çıkarıp çıkarmayacağınızı belirtin.
- G / Ç esnektir. Giriş altı ayrı tamsayı olabilir; altı basamağı içeren bir dize; bir tamsayı listesi / dizisi; bir tek (muhtemelen sekizli) sayı; Çıktı, doğru sıralı bir liste / rakam dizisi olabilir;
HH:mm:ss
/HHmmss
/ biçiminde bir dizeHH mm ss
; yeni satır sınırlayıcı ile basılan her basamak; vb. - Basamakları istediğiniz herhangi bir sırayla almanıza izin verilir, bu yüzden zaten en alttan en üste veya tam tersine sıralanabilirler.
- Belirtilen rakamlarla (yani
2,5,5,5,5,5
) geçerli bir zaman oluşturulamıyorsa , istediğiniz şekilde netleştirin. Dönebilirnull
/false
;"Not possible"
; hatayla çarpmak; (gibi bir geçersiz saat55:55:52
veya benzeri bir geçerli saat çıkaramazsınız00:00:00
.) Lütfen geçerli bir zamanın oluşturulamayacağı girdileri nasıl işlediğini belirtin. - Tüm geçerli geçerli zamanları vermenize izin verilmiyor. Sadece en erken / en son çıktı / iade edilmelidir.
24
saatlerce (yani24:00:00
) veya60
dakika / saniye (yani00:60:60
) için geçerli değil. Aralıklar[00-23]
saatlerce[00-59]
, dakikalar ve saniyeler içindir.
Genel kurallar:
- Bu kod golf , bayt cinsinden en kısa cevap kazanır.
Code-golf dillerinin, codegolfing olmayan dillerle cevap göndermekten vazgeçmesine izin vermeyin. Herhangi bir programlama dili için mümkün olduğunca kısa bir cevap bulmaya çalışın. - Cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT fonksiyonlarını, uygun parametrelerle fonksiyonlarını ve geri dönüş tipini, tam programları kullanmanıza izin verilir. Senin çağrı.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuz için test içeren bir bağlantı ekleyin.
- Ayrıca, lütfen gerekirse bir açıklama ekleyin.
Test durumları:
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
bu dakika boyunca ikinci bir adım olduğu düşünülürse geçerli olur mu?
60
dakikalar ve saniyeler için geçerli değil. Aralıklar vardır [00-23]
, [00-59]
ve [00-59]
. Mücadelede bu açıklığa kavuşacaktır.
23:48:16
Örnek için geçerli bir çıktı değil mi?