https://leetcode.com/problems/compare-version-numbers/



参考http://bookshadow.com/weblog/2014/12/17/leetcode-compare-version-numbers/


my code


class Solution(object):
    def compareVersion(self, version1, version2):
        """
        :type version1: str
        :type version2: str
        :rtype: int
        """
        v1, v2 = version1.split('.'), version2.split('.')
        i = 0
        z = 1
        
        if len(v1) > len(v2):
            tmp = ['0'] *(len(v1) - len(v2))
            v2 += tmp
        elif len(v2) > len(v1):
            tmp = ['0'] *(len(v2) - len(v1))
            v1 += tmp
        while i < len(v1):
            if int(v1[i]) > int(v2[i]):
                return 1
            elif int(v1[i]) < int(v2[i]):
                return -1
            i += 1
            
        if len(v1) == len(v2):
            return 0

 code2

class Solution:
    # @param a, a string
    # @param b, a string
    # @return a boolean
    def compareVersion(self, version1, version2):
        v1Arr = version1.split(".")#split之后每一部分逐个比较,长度不够的用0补齐
        v2Arr = version2.split(".")
        len1 = len(v1Arr)
        len2 = len(v2Arr)
        lenMax = max(len1, len2)
        for x in range(lenMax):
            v1Token = 0#如果长度不够,用0补齐
            if x < len1:
                v1Token = int(v1Arr[x])
            v2Token = 0
            if x < len2:
                v2Token = int(v2Arr[x])
            if v1Token < v2Token:
                return -1
            if v1Token > v2Token:
                return 1
        return 0