我在一天内有以下时段:
1)9:00至13:00
2)9:30到10:30
3)9:30到10:30(此间隔有意为2x)
4)11:00至12:00
我可以在水平时间线上显示时间段:
时间段1)
|--------------------------------------------|
9:00 13:00
时段2)
|-------------|
9:30 10:30
时段3)
|-------------|
9:30 10:30
时间段4)
|-------------|
11:00 12:00
我试图找出一个Python方法,它将在输入上占用N个时隙并返回不同的时间窗口加上窗口与另一个窗口重叠的次数。对于上面的示例,预期输出应如下所示:
窗口1:9:00-9:30,插槽数为1
窗口2:9:30-10:30,插槽数为3
窗口3:10:30-11:00,插槽数为1
窗口4:11:00-12:00,插槽数为2
窗口5:12:00-13:00,广告位数为1
有谁能请我指出如何在Python 3中解决这个问题的正确方向?
答案 0 :(得分:0)
使用sympy sets: intervals中的设施可以更方便地操作间隔。这是第一部分。
递归执行计算。从任何一个给定的时间间隔开始,从它开始作为第一个交叉点'并且走下去'一步。选择另一个间隔并计算前一个交点与它的交点。如果这个交叉点是非空的那么就去掉#39;另一步。否则,使用此交点返回顶部作为所考虑的间隔的交点的值。同样,如果通过的交叉路口是空的,那就去上面了。并从那里返回。从每个给定的时间间隔开始。