LeetCode 165.最小版本号 Python题解

# coding=utf-8
# Creator:Mr.Zhao
# Creation time:2023/8/1 22:09

# 比较版本号
"""
给你两个版本号version1和version2请你比较它们。
版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。
每个修订号由多位数字组成,可能包含前导零。每个版本号至少包含一个字符。修订号从左到右编号,
下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。
比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较忽略任何前导零后的整数值。
也就是说,修订号1和修订号001相等 。
如果版本号没有指定某个下标处的修订号,则该修订号视为 0 。例如,版本 1.0 小于版本 1.1,
因为它们下标为 0 的修订号相同,而下标为 1 的修订号分别为 0 和 1 ,0 < 1 。
返回规则如下:
如果 version1 > version2 返回 1,
如果 version1 < version2 返回 -1,
除此之外返回 0。
"""
"""
这道题主要是看思路把 最简单的分割就可以了 分割之后位不同补0即可
然后按照规则一一比较就可以了
"""

class Solution:
    def compareVersion(self, version1: str, version2: str) -> int:
        version1 = version1.split('.')
        version2 = version2.split('.')
        max_len = max(len(version1), len(version2))
        if len(version2) < max_len:
            version2.extend(['0'] * (max_len - len(version2)))
        if len(version1) < max_len:
            version1.extend(['0'] * (max_len - len(version1)))
        for i in range(max_len):
            if int(version1[i]) < int(version2[i]):
                return -1
            if int(version1[i]) > int(version2[i]):
                return 1
        return 0

你可能感兴趣的:(leetcode,python)