首页 > 试题广场 >

合并区间

[编程题]合并区间
  • 热度指数:4472 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
用x,y表示一个整数范围区间,现在输入一组这样的范围区间(用空格隔开),请输出这些区间的合并。

输入描述:
一行整数,多个区间用空格隔开。区间的逗号是英文字符。


输出描述:
合并后的区间,用过空格隔开,行末无空格
示例1

输入

1,3 2,5

输出

1,5
示例2

输入

1,3 2,5 8,10 11,15

输出

1,5 8,10 11,15

备注:
x,y均为正整数,并且x<=y。
import sys

line = raw_input().strip().split()
inters = [map(int, x.split(',')) for x in line]
inters = sorted(inters)

cur = inters[0]
r = []
for inter in inters[1:]:
    if cur[1] < inter[0]:
        r.append(cur)
        cur = inter
    else:
        cur[1] = max(cur[1], inter[1])
r.append(cur)

print ' '.join([','.join(map(str, x)) for x in r])

发表于 2023-02-18 02:32:14 回复(0)