Leetcode 165
阿新 • • 發佈:2019-01-06
比較兩個版本號 version1 和 version2。
如果 version1 > version2
返回 1
,如果 version1 < version2
返回 -1
, 除此之外返回 0
。
你可以假設版本字串非空,並且只包含數字和 .
字元。
.
字元不代表小數點,而是用於分隔數字序列。
例如,2.5
不是“兩個半”,也不是“差一半到三”,而是第二版中的第五個小版本。
示例 1:
輸入:version1
= "0.1",version2
= "1.1" 輸出: -1
示例 2:
輸入:version1
= "1.0.1",version2
= "1" 輸出: 1
示例 3:
輸入:version1
= "7.5.2.4",version2
= "7.5.3" 輸出: -1
方法:
首先分析版本號的特點,由於版本號屬於帶數字和 ' . ' 的特殊字串。很自然的想到利用 ' . '進行切分,之後再進行後面的逐位比較。
AC程式碼如下:
class Solution: def compareVersion(self, version1, version2): """ :type version1: str :type version2: str :rtype: int """ v1 = version1.split('.') v2 = version2.split('.') length1 = len(v1) length2 = len(v2) num = max(length1, length2) for i in range(num): temp1, temp2 = 0, 0 if i < length1: temp1 = int(v1[i]) if i < length2 : temp2 = int(v2[i]) if temp1 < temp2: return -1 if temp1 > temp2: return 1 return 0