Leetcode 165

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

猜你喜欢

转载自blog.csdn.net/jhlovetll/article/details/85601909
今日推荐