Jako golfiarze nie jesteśmy przyzwyczajeni do wydawania (na pewno ). Będziemy potrzebować kilku narzędzi, które nam w tym pomogą.
Oczywiście, aby pomóc w marketingu nowego wydania, potrzebujemy ładnej i błyszczącej wersji wydania. Kto nie jest podekscytowany, gdy słyszy o wersji 3.0.0?
Zadanie
Twoim zadaniem będzie napisanie programu / procedury / ... w celu zwiększenia numeru wersji.
Musisz zwiększyć numer wersji i zresetować te „mniej ważne” (tj. Wersję poprawki).
Otrzymasz dwa argumenty: bieżącą wersję (np. „1.0.3”) jako ciąg oraz indeks, aby dowiedzieć się, który z nich zaktualizować (0 lub 1-indeksowany).
Przykład, indeksowany 0:
next-version("1.0.3", 0) # 2.0.0
next-version("1.2.3.4.5", 2) # 1.2.4.0.0
next-version("10.0", 0) # 11.0
next-version("3", 0) # 4
next-version("1", 7) # ERROR
next-version("01", 0) # ERROR
Wersja jest ciągiem znaków, każda część jest liczbą oddzieloną kropką. Nie może być żadnych wiodących, końcowych ani kolejnych kropek (i nic poza liczbami / kropkami). Nie ma ograniczeń co do wielkości ciągu wersji.
^[1-9]\d*(\.[1-9]\d*)*$
Przypadek błędu (dwa ostatnie przykłady) jest niezdefiniowanym zachowaniem. To, co dzieje się w przypadku nieprawidłowych danych wejściowych, nie ma znaczenia dla tego wyzwania.
Jak zwykle standardowe luki są zabronione. Możesz wydrukować lub zwrócić ciąg.