200字
版本管理
2025-12-03
2025-12-03

题目描述

在软件版本管理中,版本号由点分割的数字组成,例如1.2.32.0.现在,你需要编写一个函数,计算两个版本号之间的可用版本号个数。这里的可用版本号指的是所有满足version1<x<version2的版本号x的个数。若version1 >= version2,返回0.

输入描述

输入两个字符串version1version2,均遵循一下规定:

  1. 版本号由数字和点组成,且至少包含一个数字。

  2. 点不会作为版本号的开头或结尾,也不会连续出现。

  3. 每个数字部分的数值忽略前导零(例如1.01和1.001视为相同)

  4. 两个字符串中间以英文逗号分割

输出描述

输出一个整数,表示可用版本号的个数。具体规则如下:

  • 如果version1 >= version2,返回0

  • 否则,找到第一个不同的版本号段,假设在位置i,version1的该段值为v1,version2的该段值为v2.可用版本号的个数为v2-v1-1。

  • 如果第一个不同段之后的版本段在version2中不全为0,则返回0.

示例1

输入

1.2,1.4

输出

1

说明

不同段中version1 为 2 ,version2 为4,4-2-1 = 1


def input_data():
    data1 = list(map(int, input().split('.')))
    data2 = list(map(int, input().split('.')))
    return data1,data2

def compare(data1, data2):
    max_len = max(len(data1),len(data2))
    for i in range(max_len):
        v1 = data1[i] if i<len(data1) else 0
        v2 = data2[i] if i<len(data2) else 0
        print(v1, v2)
        if v1 > v2:
            return 0
        elif v1 < v2:
            for j in range(i+1,len(data2)):
                if data2[j] !=0:
                    return 0
            return v2 -v1 -1
        else:
            continue
    return 0



if __name__ == '__main__':
    data1, data2 = input_data()
    print(compare(data1, data2))

版本管理
作者
Shisuiyi
发表于
2025-12-03
License
CC BY-NC-SA 4.0

评论