【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
posted @ 2015-03-26 19:45  mrbean  阅读(257)  评论(0编辑  收藏  举报