# -*- coding: utf-8 -*-
__author__ = 'ypp'
import re
def versioncompare(v1="1.1.1", v2="1.2"):
v1_check = re.match("\d+(\.\d+)", v1)
v2_check = re.match("\d+(\.\d+)", v2)
if v1_check is none or v2_check is none or v1_check.group() != v1 or v2_check.group() != v2:
return "版本號格式不對,正確的應該是x.x.x,只能有3段"
v1_list = v1.split(".")
v2_list = v2.split(".")
v1_len = len(v1_list)
v2_len = len(v2_list)
if v1_len > v2_len:
for i in range(v1_len - v2_len):
elif v2_len > v1_len:
for i in range(v2_len - v1_len):
else:
pass
for i in range(len(v1_list)):
if int(v1_list[i]) > int(v2_list[i]):
return "v1大"
if int(v1_list[i]) < int(v2_list[i]):
return "v2大"
return "相等"
# 測試用例
print(versioncompare(v1="", v2=""))
print(versioncompare(v1="1.0.a", v2="d.0.1"))
print(versioncompare(v1="1.0.1", v2="1.0.1"))
print(versioncompare(v1="1.0.2", v2="1.0.1"))
print(versioncompare(v1="1.0.1", v2="1.0.2"))
print(versioncompare(v1="1.0.11", v2="1.0.2"))
設計思想:
1.使用正規表示式判斷版本號格式是否正確
2.將字串用」.」分隔成陣列
3.比較陣列長度,將長度短的陣列用「0」補齊成相等長度陣列
4.逐個遍歷陣列元素,比較大小
測試用例:
1.版本號為空
2.版本號含非數字
3.版本號長度不一致
4.版本號以點為分隔,逐位比較
比較版本號
題目 比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 ...
比較版本號
比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 也不是...
比較版本號
比較版本號 比較兩個版本號 version1 和 version2。如果 version1 version2 返回1,如果 version1 version2 返回 1,除此之外返回0。你可以假設版本字串非空,並且只包含數字和.字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5不是 兩個半 ...