165. 比较版本号(中等,字符串)(12.24)

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

思路:先把字符串按照'.'给拆分,然后从左向右逐个比较。按照最长的来比较,如果短的比较完之后就在后面补0

class Solution(object):
    def compareVersion(self, version1, version2):
        """
        :type version1: str
        :type version2: str
        :rtype: int
        """
        v1=version1.split('.')
        v2=version2.split('.')
        l1=len(v1)
        l2=len(v2)
        c=max(l1,l2)
        for i in range(c):
            c1,c2=0,0
            if i <l1:
                c1=int(v1[i])
            if i <l2:
                c2=int(v2[i])
            if c1<c2:
                return -1
            if c1>c2:
                return 1
        return 0

执行用时: 24 ms, 在Compare Version Numbers的Python提交中击败了98.18%的用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值