版本號大小比較

此版本號比較能夠處理含數字、點“.”、英文字母等多種,定長和不定長的版本號的比較。

如有疑問和指教,歡迎留言。

def compare(version1, version2):
    v1 = version1.split('.')
    v2 = version2.split('.')
    while v1 and v2:
        x, y = v1.pop(0), v2.pop(0)
        if x.isdigit() and y.isdigit():
            if int(x) == 0 and int(y) == 0:
                pass
            else:
                if x > y:
                    return 1  #version1 > version2
                if x < y:
                    return -1  # version1 < version2
        else:
            if x > y:
                return 1  # version1 > version2
            if x < y:
                return -1     #version1 < version2
    if v1:
        for x in v1:
            if x.isdigit():
                if int(x) == 0:
                    v1.pop(0)
                else:
                    return 1  #version1 > version2
            else:
                return 1   #version1 > version2
    if v2:
        for x in v2:
            if x.isdigit():
                if int(x) == 0:
                    v2.pop(0)
                else:
                    return -1  #version1 < version2
            else:
                return -1  #version1 < version2
    return 0               #version1 = version2


    # if v1 and any(x > '0' for x in v1):
    #     return 1          #version1 > version2
    # if v2 and any(x > '0' for x in v2):
    #     return -1         #version1 < version2
    # return 0              #version1 = version2



line = raw_input()
version = str(line).split(' ')
version1 = version[0]
version2 = version[1]
print compare(version1, version2)

參考鏈接:https://blog.csdn.net/chara_cter/article/details/90318982

https://blog.csdn.net/foreverzo/article/details/88320169

發佈了233 篇原創文章 · 獲贊 135 · 訪問量 53萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章