题解 | #比较版本号#

比较版本号

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)

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
龙珠传说:nb,公务员解约不需要支付违约金吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务