题解 | #比较版本号#

比较版本号

https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7

把字符串转换为整型列表然后逐一比较,简单易懂

class Solution:
    def compare(self , version1: str, version2: str) -> int:
        # write code here
        # 把字符串转换为整型数组
        version1 = list(map(int, version1.split('.')))
        version2 = list(map(int, version2.split('.')))
        flag = 1
        # 把短的版本号设置为version1,用flag标记已经交换v1v2位置
        if len(version1) >= len(version2):
            version1, version2 = version2, version1
            flag = -1
        for i in range(len(version2)):
            # 如果已经超出了短的版本号范围,就只需要判断长版本号的剩余部分是否为零即可
            if i >= len(version1):
                # 如果不为零则说明长版本号更大,为零则继续比较剩下的元素
                if version2[i] != 0:
                    return flag*(-1)
                else:
                    continue
            elif version1[i] == version2[i]:
                continue
            elif version1[i] > version2[i]:
                return flag
            elif version1[i] < version2[i]:
                return flag*(-1)
        return 0

时间复杂度:O(max(n,m))

空间复杂度:O(1)

全部评论

相关推荐

11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
accaacc:2到4k,不是2k到4k,所以年薪是30块
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务