[165. Compare Version Numbers(https://leetcode.com/problems/compare-version-numbers/)
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.
Example 1:
Input: version1 = “0.1”, version2 = “1.1”
Output: -1
Example 2:
Input: version1 = “1.0.1”, version2 = “1”
Output: 1
Example 3:
Input: version1 = “7.5.2.4”, version2 = “7.5.3”
Output: -1
解题方法
版本是用.进行分割的,那么我们也只能通过用.进行分割来判定版本号的大小。把版本号进行分割,需要找出一个较长的版本号的长度,把较短的版本的后面用0进行补齐。恩,然后进行比较。
class Solution(object):
def compareVersion(self, version1, version2):
"""
:type version1: str
:type version2: str
:rtype: int
"""
v1_split = version1.split('.')
v2_split = version2.split('.')
v1_len, v2_len = len(v1_split), len(v2_split)
maxLen = max(v1_len, v2_len)
for i in range(maxLen):
temp1, temp2 = 0, 0
if i < v1_len:
temp1 = int(v1_split[i])
if i < v2_len:
temp2 = int(v2_split[i])
if temp1 < temp2:
return -1
elif temp1 > temp2:
return 1
return 0