1. 程式人生 > >165. 比較版本號(中等,字串)(12.24)

165. 比較版本號(中等,字串)(12.24)

比較兩個版本號 version1 和 version2
如果 version1 version2 返回 1,如果 version1 version2 返回 -1, 除此之外返回 0

你可以假設版本字串非空,並且只包含數字和 . 字元。

 . 字元不代表小數點,而是用於分隔數字序列。

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

示例 1:

輸入: version1 = "0.1", version2= "1.1"輸出: -1

示例 2:

輸入: version1 = "1.0.1", version2 = "1"輸出: 1

思路:先把字串按照'.'給拆分,然後從左向右逐個比較。按照最長的來比較,如果短的比較完之後就在後面補0

class Solution(object):
    def compareVersion(self, version1, version2):
        """
        :type version1: str
        :type version2: str
        :rtype: int
        """
        v1=version1.split('.')
        v2=version2.split('.')
        l1=len(v1)
        l2=len(v2)
        c=max(l1,l2)
        for i in range(c):
            c1,c2=0,0
            if i <l1:
                c1=int(v1[i])
            if i <l2:
                c2=int(v2[i])
            if c1<c2:
                return -1
            if c1>c2:
                return 1
        return 0

執行用時: 24 ms, 在Compare Version Numbers的Python提交中擊敗了98.18%的使用者