此版本號比較能夠處理含數字、點“.”、英文字母等多種,定長和不定長的版本號的比較。
如有疑問和指教,歡迎留言。
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