在 Python 中比较版本号
假设我们必须比较两个版本号 version1 和 version2。如果 version1 > version2,则返回 1;否则当 version1 < version2 时返回 -1;否则返回 0。我们可以假设版本字符串非空,并且仅包含数字和点 (.) 字符。点字符不代表小数点,用于分隔数字序列。因此,例如,2.5 不是"两个半"或"版本三的一半",而是第二个一级修订的第五个二级修订。
我们可以假设版本号每个级别的默认修订号为 0。例如,版本号 3.4 的一级和二级修订号分别为 3 和 4。其第三级和第四级修订号均为 0。
因此,如果输入类似 version1 = "1.0.1" 和 version2 = "1",则它将返回 +1。
为了解决这个问题,我们将遵循以下步骤 −
version1_arr = 一个用点分隔的数字数组,用于表示 version1
version2_arr = 一个用点分隔的数字数组,用于表示 version2
for i in range 0 to max of size of version1_arr and size of version2_arr −
v1 := version1_arr[i] if i < version1_arr 的大小,否则为 0
如果 i < version2_arr 的大小,则 v2 := version2_arr[i],否则为 0
如果 v1 > v2,则返回 1,否则当 v1 < v2 时,返回 -1
返回 0
示例 (Python)
让我们看看下面的实现以便更好地理解 −
class Solution:
def compareVersion(self, version1, version2):
versions1 = [int(v) for v in version1.split(".")]
versions2 = [int(v) for v in version2.split(".")]
for i in range(max(len(versions1),len(versions2))):
v1 = versions1[i] if i < len(versions1) else 0
v2 = versions2[i] if i < len(versions2) else 0
if v1 > v2:
return 1
elif v1 <v2:
return -1
return 0
ob1 = Solution()
print(ob1.compareVersion("1.0.1","1.0"))
输入
"1.0.1" "1.0"
输出
1
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

