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
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP