LeetCode:165. 比较版本号

1、题目描述

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

2、题解

2.1、解法一

class Solution(object):
    def compareVersion(self, version1, version2):
        """
        :type version1: str
        :type version2: str
        :rtype: int
        """
        v1 = [int(i) for i in version1.split(".")]
        v2 = [int(i) for i in version2.split(".")]
        
        n1 = len(v1)
        n2 = len(v2)
        if n1 > n2:
            print("ok")
            v2.extend([0 for i in range(n1-n2)])
        elif n1 < n2:
            v1.extend([0 for i in range(n2-n1)])

        i = 0
        n = len(v1)
        while i <n:
            if v1[i] > v2[i]:
                return 1
            elif v1[i] < v2[i]:
                return -1
            i += 1

        return 0

  

原文地址:https://www.cnblogs.com/bad-robot/p/10065596.html