首页 > 试题广场 >

比较两个版本字符串version1和version2

[编程题]比较两个版本字符串version1和version2
  • 热度指数:4528 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

如果version1 > version2 返回1,如果 version1 < version2 返回-1,不然返回0.

输入的version字符串非空,只包含数字和字符..字符不代表通常意义上的小数点,只是用来区分数字序列。例如字符串2.5并不代表二点五,只是代表版本是第一级版本号是2,第二级版本号是5.


输入描述:
两个字符串,用空格分割。
每个字符串为一个version字符串,非空,只包含数字和字符.


输出描述:
只能输出1, -1,或0
示例1

输入

0.1 1.1

输出

-1

备注:
version1和version2的长度不超过1000,由小数点'.'分隔的每个数字不超过256。
拆开来一级一级比较就行了。注意版本号可能段数不同,需要在相同段数比较之后再做判断。

class MainActivity:

    def main(self):
        # Read the data
        v1, v2 = filter(lambda x: len(x) > 0, input().split(' '))
        v1 = list(map(int, v1.split('.')))
        v2 = list(map(int, v2.split('.')))
        # Compare
        flag = True
        if len(v1) > len(v2):
            v1, v2 = v2, v1
            flag = False
        for ptr in range(len(v1)):
            if v1[ptr] < v2[ptr]:
                print(-1 if flag else 1)
                return
            elif v1[ptr] > v2[ptr]:
                print(1 if flag else -1)
                return
        if len(v2) > len(v1):
            print(-1 if flag else 1)
        else:
            print(0)


if __name__ == '__main__':
    M = MainActivity()
    M.main()
发表于 2024-08-26 17:19:40 回复(0)

热门推荐

通过挑战的用户

查看代码
比较两个版本字符串version1和version2