串--165. Compare Version Numbers

该博客讨论如何比较两个版本号,如'0.1'和'1.1'。当version1大于version2时返回1,小于则返回-1,相等则返回0。版本号中的'.'字符用于分隔数字序列,不表示小数点。例如,'2.5'表示第二个一级修订版的第五个二级修订版。根据给定的示例,如version1='0.1'和version2='1.1',会返回-1。
摘要由CSDN通过智能技术生成

[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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值