Compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
You may assume that the version strings are non-empty and contain only digits and the .
character.The .
character does not represent a decimal point and is used to separate number sequences.For instance, 2.5
is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.
Here is an example of version numbers ordering:
Solution:
class Solution(object):
def compareVersion(self, version1, version2):
"""
:type version1: str
:type version2: str
:rtype: int
"""
def compare(x, y, i):
if len(x) <= i and len(y) <= i:
return 0
elif len(x) <=i and len(y) > i:
x.append("0")
return compare(x, y, i)
elif len(x) > i and len(y) <= i:
y.append("0")
return compare(x, y, i)
elif int(x[i]) > int(y[i]):
return 1
elif int(y[i]) > int(x[i]):
return -1
else:
return compare(x, y, i+1)
v1 = version1.split(".")
v2 = version2.split(".")
return compare(v1, v2, 0)