Sayfa seçim arayüzü yapmak için sıkça rastlanır. Genellikle şöyle görünür:
prev 1 ... 3 4 [5] 6 7 ... 173 next
Bu, toplamda 173 sayfa olduğu ve şu anda 5. sayfadasınız demektir.
Bu zorluk, toplam sayfa sayısını ve geçerli sayfa numarasını girdi olarak almanızı ve sayfa seçiciyi "görüntülemek" için bir dize (veya bir dizi) çıkarmanızı gerektirir.
Giriş
2 pozitif tam sayı
- mevcut sayfa numarası
- sayfa sayısı
Toplam 1 <= akım <= toplam olması garanti edilir.
Çıktı
Sayfa seçicileri için kullanıcı arabirimini temsil eden bir dize veya bir dizi çıktılar.
- Dizge olarak çıktı verilirse, her sayfa arasında tek bir boşluk (U + 0020) kullanılmalıdır.
- Bir dizi olarak çıktı ise, dizi her maddeyi dizeye dönüştürdükten ve tek bir boşlukla birleştirdikten sonra dizeyle aynı sonucu vermelidir.
...
Dizi çıkışı için üç nokta ( ) isteğe bağlı değildir.
ayrıntılar
- Akım == 1 ise, "prev" çıkmaz, aksi takdirde "prev" önce gelir.
- Akım == toplam ise, "sonraki" çıkmaz, aksi takdirde "sonraki" en son gelir.
- İlk sayfa (1) ve son sayfa (toplam) her zaman yazdırılmalıdır.
- Geçerli sayfa, (geçerli - 1) sayfa, (geçerli - 2) sayfa, (geçerli + 1) sayfa, (geçerli + 2) sayfa, [1.toto] aralığında olduğu sürece yazdırılmalıdır.
- Başka hiçbir sayfa numarası gösterilmemelidir.
- Çıktılan sayfalar artan düzende sıralanmalıdır.
- Çıktı, yinelenen sayfa numaraları içermemelidir.
- Geçerli sayfa, bir çift olarak sarılarak vurgulanmalıdır
[]
. - Herhangi bir komşu arasında bir boşluk varsa, üç nokta (
...
) yerleştirilmelidir.
Test Kılıfları
Current Total Output
1 1 [1]
1 2 [1] 2 next
1 10 [1] 2 3 ... 10 next
3 3 prev 1 2 [3]
3 6 prev 1 2 [3] 4 5 6 next
4 6 prev 1 2 3 [4] 5 6 next
4 7 prev 1 2 3 [4] 5 6 7 next
3 10 prev 1 2 [3] 4 5 ... 10 next
5 10 prev 1 ... 3 4 [5] 6 7 ... 10 next
10 10 prev 1 ... 8 9 [10]
52 173 prev 1 ... 50 51 [52] 53 54 ... 173 next
kurallar
- Bu kod golf, en kısa kod kazanır!
4,7
test vakası büyük ölçüde takdir edilecektir - elipsleri dışlayan sınır vakalarının ikisinin de aynı anda karşılanabileceğini garanti eder
4 , 6
Bir test durumu olarak eklemeye değer olabilir . Kasaya benzer3, 6
, ancak noktaların sol tarafa eklenmemesini sağlar.