LeetCode 165. 比较版本号 Python

本文介绍了一种比较软件版本号的算法,通过将版本号分割、转换并补全,实现version1与version2的精确对比。适用于LeetCode经典题目解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比较两个版本号 version1 和 version2
如果 version1 version2 返回 1,如果 version1 version2 返回 -1, 除此之外返回 0

你可以假设版本字符串非空,并且只包含数字和 . 字符。

 . 字符不代表小数点,而是用于分隔数字序列。

例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。

你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 3 和 4。其第三级和第四级修订号均为 0
?   https://leetcode-cn.com/classic/problems/compare-version-numbers/description/

思路:
1.先split('.')
2.扫描split得到的数组,将其中的每个元素加到各自的字符串中。
3.对数组中的每个元素先 int(x) 去除前导0,然后将int(x)的结果直接加到字符串中。
4.处理的两个字符串如果长度相同直接比较,如果长度不同,要先把短的字符串补齐(0),然后再比较。
class Solution:
    def compareVersion(self, version1: str, version2: str) -> int:
        res1 = version1.split('.')
        res2 = version2.split('.')
        st1 = ''
        st2 = ''
        for i in res1:
            st1 += chr(int(i) + 48)
        for i in res2:
            st2 += chr(int(i) + 48)
        len1 = len(st1)
        len2 = len(st2)
        if len1 < len2:
            n = len2 - len1
            while(n):
                st1 += '0'
                n -= 1
        if len2 < len1:
            n = len1 - len2
            while(n):
                st2 += '0'
                n -= 1                
        if st1 < st2:
            return -1
        elif st1 > st2:
            return 1
        return 0     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值