首页 > 试题广场 >

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

[编程题]比较两个版本字符串version1和version2
  • 热度指数:4441 时间限制: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。
def main():
    a = list(input().split(" "))
    b, c = [list(map(int,it.split("."))) for it in a]
    l = abs(len(b) - len(c))
    if l and len(b) > len(c):
        c += [0] * l
    if l and len(b) < len(c):
        b += [0] * l
    for c1, c2 in zip(b, c):
        if c1 > c2:
            print(1)
            return
        elif c1 < c2:
            print(-1)
            return
    print(0)
if __name__ == "__main__":
    main()

发表于 2019-09-19 09:10:07 回复(0)
x,y = map(lambda x:list(map(int, x.split('.'))), input().split())
if x > y: print(1)
elif x < y: print(-1)
else: print(0)

发表于 2019-09-12 05:09:41 回复(0)
# Python3 代码---完全通过版

def judgeTwoVersion(str0):
    a, b = str0[0], str0[1]
    # 将字符串转存为两个列表
    list_a, list_b = a.split('.'), b.split('.') 
    # 求最小的长度,考虑到两个字符串可能出现长度不等的情况
    mylen = min(len(list_a), len(list_b))

    # 等长度判断
    for i in range(mylen):
        if int(list_a[i]) < int(list_b[i]):
            print('-1')
            break
        elif int(list_a[i]) > int(list_b[i]):
            print('1')
            break
        elif int(list_a[i]) == int(list_b[i]):
            continue

    # 非等长度判断 
    if i == mylen - 1 and list_a[mylen - 1] == list_b[mylen - 1]:
        if len(list_a) > len(list_b):
            print('1')
        elif len(list_a) < len(list_b):
            print('-1')
        elif len(list_a) == len(list_b):
            print('0')

# 主函数
if __name__ == '__main__':
    str0 = [i for i in input().split()]    # 输入字符串
    judgeTwoVersion(str0)                  # 输出判断结果


需要注意的2个问题:

  • 两个字符串的长度可能不同;
  • 输入的字符串中可能出现多个.。
代码仍然存在优化改进的地方。

编辑于 2019-05-12 14:42:36 回复(1)

热门推荐

通过挑战的用户

查看代码