Come golfisti del codice, non siamo abituati a rilasciare ( sicuramente ). Avremo bisogno di alcuni strumenti per aiutarci a farlo.
Naturalmente, per aiutare a commercializzare una nuova versione, abbiamo bisogno di una versione di rilascio bella e brillante. Chi non si eccita quando sente parlare della versione 3.0.0?
Compito
Il tuo compito sarà scrivere un programma / routine / ... per incrementare un numero di versione.
È necessario incrementare il numero di versione e ripristinare quelli "meno importanti" (ovvero la versione della patch).
Vengono visualizzati due argomenti: la versione corrente (ex "1.0.3") come stringa e un indice per sapere quale aggiornare (0 o 1 indicizzato).
Esempio, indicizzato 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
La versione è una stringa, ogni parte è un numero, separato da un punto. Non ci possono essere punti iniziali, finali o punti consecutivi (e niente al di fuori di numeri / punti). Non vi è alcun limite alla dimensione della stringa di versione.
^[1-9]\d*(\.[1-9]\d*)*$
Il caso di errore (ultimi due esempi) è un comportamento indefinito. Ciò che accade in caso di input errati non è rilevante per questa sfida.
Come al solito, sono vietate le scappatoie standard. Puoi stampare o restituire la stringa.