Als Code-Golfer sind wir es ( sicher ) nicht gewohnt, etwas zu veröffentlichen . Wir brauchen ein paar Tools, die uns dabei helfen.
Um ein neues Release zu vermarkten, benötigen wir natürlich eine schöne und glänzende Release-Version. Wer wird nicht aufgeregt, wenn er von Version 3.0.0 erfährt?
Aufgabe
Ihre Aufgabe wird es sein, ein Programm / eine Routine / ... zu schreiben, um eine Versionsnummer zu erhöhen.
Sie müssen die Versionsnummer erhöhen und die "weniger wichtigen" (dh die Patch-Version) zurücksetzen.
Sie erhalten zwei Argumente: die aktuelle Version (z. B. "1.0.3") als Zeichenfolge und einen Index, um zu wissen, welcher zu aktualisieren ist (0 oder 1-indiziert).
Beispiel 0-indiziert:
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
Die Version ist eine Zeichenfolge, jeder Teil ist eine Zahl, die durch einen Punkt getrennt ist. Es darf keine führenden, keine nachgestellten oder keine aufeinanderfolgenden Punkte geben (und nichts außerhalb von Zahlen / Punkten). Die Größe der Versionszeichenfolge ist unbegrenzt.
^[1-9]\d*(\.[1-9]\d*)*$
Der Fehlerfall (die letzten beiden Beispiele) ist undefiniertes Verhalten. Was bei Fehleingaben passiert, ist für diese Herausforderung nicht relevant.
Standardlücken sind wie üblich verboten. Sie dürfen den String ausdrucken oder zurücksenden.