Często konieczne jest utworzenie interfejsu wyboru strony. Zwykle wygląda to tak:
prev 1 ... 3 4 [5] 6 7 ... 173 next
Co oznacza, że jest w sumie 173 strony, a ty jesteś obecnie na 5. stronie.
Wyzwanie to wymaga wprowadzenia całkowitej liczby stron i bieżącego numeru strony jako danych wejściowych i wyprowadzenia łańcucha (lub tablicy) w celu „wyświetlenia” selektora stron.
Wejście
2 dodatnie liczby całkowite
- aktualny numer strony
- liczba stron
Gwarantuje się, że 1 <= prąd <= ogółem.
Wynik
Wypisuje ciąg lub tablicę reprezentującą interfejs użytkownika dla selektorów stron.
- Jeśli dane wyjściowe są ciągiem, między każdą stroną należy użyć pojedynczej spacji (U + 0020).
- Jeśli dane wyjściowe są tablicą, tablica powinna dawać taki sam wynik jak ciąg znaków po przekonwertowaniu każdego elementu na ciąg i połączeniu ich pojedynczą spacją.
- Trzy kropki (
...
) nie są opcjonalne dla danych wyjściowych tablicy.
- Trzy kropki (
Detale
- Jeśli prąd == 1, nie zostanie wyprowadzone „poprzednie”, w przeciwnym razie „poprzednie” będzie pierwsze.
- Jeśli prąd == ogółem, nie zostanie wyświetlone „następne”, w przeciwnym razie „następne” będzie ostatnie.
- Zawsze należy wydrukować pierwszą stronę (1) i ostatnią stronę (łącznie).
- Strona bieżąca, strona (bieżąca - 1), strona (bieżąca - 2), strona (bieżąca + 1), strona (bieżąca + 2) powinna być wyświetlana, o ile mieszczą się w przedziale [1.. ogółem].
- Żadne inne numery stron nie powinny być wyprowadzane.
- Wydrukowane strony powinny być sortowane w porządku rosnącym.
- Dane wyjściowe nie powinny zawierać zduplikowanych numerów stron.
- Bieżącą stronę należy wyróżnić, zawijając ją w parę
[]
. - Jeśli między sąsiadami jest przerwa,
...
należy wstawić trzy kropki ( ).
Przypadki testowe
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
Zasady
- To jest code-golf, wygrywa najkrótszy kod!
4,7
przypadek testowy byłby bardzo mile widziany - zapewniłby, że oba przypadki graniczne wykluczające elipsy mogą być jednocześnie spełnione
4 , 6
jako przypadek testowy. Podobnie jak w3, 6
przypadku, ale zapewnia, że kropki nie zostaną dodane do lewej strony.