Leetcode練習(python):字符串類:第165題:比較版本號:比較兩個版本號 version1 和 version2。 如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。


題目:
比較版本號:比較兩個版本號 version1 和 version2。 如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。 

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

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

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

你可以假設版本號的每一級的默認修訂版號為 0。例如,版本號 3.4 的第一級(大版本)和第二級(小版本)修訂號分別為 3 和 4。其第三級和第四級修訂號均為 0。

提示:

  1. 版本字符串由以點 (.) 分隔的數字字符串組成。這個數字字符串可能有前導零。
  2. 版本字符串不以點開始或結束,並且其中不會有兩個連續的點。

思路:

之前做了一頓關於去除前導點的工作,后來發現情況越來越多,后來將其轉為整型來處理很省事省力,總體比較簡單,自己走了彎路。

程序:

class Solution:
    def compareVersion(self, version1: str, version2: str) -> int:
        if not version1 and version2:
            return -1
        if version1 and not version2:
            return 1
        if not version1 and not version2:
            return 0
        version1 = version1.split('.')
        version2 = version2.split('.')
        length1 = len(version1)
        length2 = len(version2)
        if length1 < length2:
            version1 += ['0'] * (length2 - length1)
        elif length1 > length2:
            version2 += ['0'] * (length1 - length2)
        index1 = 0
        while index1 < max(length1, length2):
            if int(version1[index1]) > int(version2[index1]):
                return 1
            elif int(version1[index1]) < int(version2[index1]):
                return -1
            else:
                index1 += 1
        return 0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM