leetcode中等165比较版本号

Posted qq_40707462

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode中等165比较版本号相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
在这里插入图片描述
思路一:用split函数分割成数组。然后比较

class Solution(object):
    def compareVersion(self, version1, version2):
        v1=version1.split(".")
        v2=version2.split(".")
        while v1 or v2:
            x=int(v1.pop(0)) if v1 else 0
            y = int(v2.pop(0)) if v2 else 0

            if x>y:
                return 1
            elif x<y:
                return -1
        return 0

思路二:不使用现成函数,双指针分别指向v1,v2,一次遍历

class Solution(object):
    def compareVersion(self, version1, version2):
        i, j = 0, 0
        l1,l2=len(version1),len(version2)
        while i < l1 or j < l2:
            a = 0
            b = 0
            while i < l1 and version1[i] != '.':#遍历两个点之间的内容
                a = a * 10 + int(version1[i])
                i += 1
            while j < l2 and version2[j] != '.':
                b = b * 10 + int(version2[j])
                j += 1
            i+=1#遇到点要加一,不然就一直在点处循环
            j+=1
            if a > b:
                return 1
            elif a < b:
                return -1
        return 0

以上是关于leetcode中等165比较版本号的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—165. 比较版本号( 双指针)—day25

LeetCode第165题—比较版本号—Python实现

LeetCode第165题—比较版本号—Python实现

LeetCode第165题—比较版本号—Python实现

LeetCode第165题—比较版本号—Python实现

LeetCode 165. 比较版本号c++/java详细题解