比较两个版本号 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