Python 版本號比較
假設我們需要比較兩個版本號 version1 和 version2。如果 version1 > version2,則返回 1;如果 version1 < version2,則返回 -1;否則返回 0。我們可以假設版本字串非空,並且只包含數字和點 (.) 字元。點字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是“二點五”或“到版本三的一半”,而是第二個一級修訂版的第五個二級修訂版。
我們可以假設每個版本號級別的預設修訂號為 0。例如,版本號 3.4 的一級和二級修訂號分別為 3 和 4。它的三級和四級修訂號均為 0。
因此,如果輸入類似於 version1 = “1.0.1” 和 version2 = “1”,則它將返回 +1。
為了解決這個問題,我們將遵循以下步驟:
version1_arr = version1 以點分隔的數字陣列
version2_arr = version2 以點分隔的數字陣列
對於範圍為 0 到 version1_arr 大小和 version2_arr 大小最大值的 i:
如果 i < version1_arr 大小,則 v1 := version1_arr[i],否則 v1 := 0
如果 i < version2_arr 大小,則 v2 := version2_arr[i],否則 v2 := 0
如果 v1 > v2,則返回 1;如果 v1 < v2,則返回 -1
返回 0
示例 (Python)
讓我們來看下面的實現,以便更好地理解:
class Solution: def compareVersion(self, version1, version2): versions1 = [int(v) for v in version1.split(".")] versions2 = [int(v) for v in version2.split(".")] for i in range(max(len(versions1),len(versions2))): v1 = versions1[i] if i < len(versions1) else 0 v2 = versions2[i] if i < len(versions2) else 0 if v1 > v2: return 1 elif v1 <v2: return -1 return 0 ob1 = Solution() print(ob1.compareVersion("1.0.1","1.0"))
輸入
"1.0.1" "1.0"
輸出
1
廣告