zoukankan      html  css  js  c++  java
  • 【leetcode】Compare Version Numbers

    题目描述:

    Compare two version numbers version1 and version2.
    If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.

    You may assume that the version strings are non-empty and contain only digits and the . character.
    The . character does not represent a decimal point and is used to separate number sequences.
    For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.

    Here is an example of version numbers ordering:

    0.1 < 1.1 < 1.2 < 13.37

    解题思路:

    很多细节,代码比较冗余

    class Solution:
        # @param version1, a string
        # @param version2, a string
        # @return an integer
        def compareVersion(self, version1, version2):
            v1 = version1.split('.')
            v2 = version2.split('.')
            l1 = len(v1)
            l2 = len(v2)
            if l1 < l2:
                for i in range(l1):
                    if int(v1[i]) < int(v2[i]):
                        return -1
                    elif int(v1[i]) > int(v2[i]):
                        return 1
                for i in range(l1,l2):
                    if int(v2[i]) > 0:
                        return -1
                return 0
    
            else:
                for i in range(l2):
                    if int(v1[i]) < int(v2[i]):
                        return -1
                    elif int(v1[i]) > int(v2[i]):
                        return 1
                for i in range(l2,l1):
                    if int(v1[i]) > 0:
                        return 1
                return 0
  • 相关阅读:
    指针和数组的关系
    深入学习数组
    const关键字与指针
    野指针是什么
    指针带来的一些符号的理解
    指针的本质
    内存管理之堆
    内存管理之栈
    元类
    断点调式和面向对象进阶
  • 原文地址:https://www.cnblogs.com/MrLJC/p/4369850.html
Copyright © 2011-2022 走看看