pythonを使用して解決スケジュールの競合

アブドゥルアジーズAlghofaily:

私はn人のユーザのスケジュールの入力は、私は新しいスケジュールを形成したい有していることを示している時間連合

これは、入力されました

[08:00-08:50' 、09:00-09:50' 、'10:00-10:50' 、'11:00-11:50' 、'11:00-12:15' 、'12:00-12:50' 、'12:00-13:15' 、'13:00-13:50' 、'14:00-15:15' 、'15:30-18:10' ]

出力は次のようにする必要があります

[08:00-08:50' 、09:00-09:50' 、'10:00-10:50' 、'11:00-13:50' 、'14:00-15:15' 、'15:30-18:10' ]

私がこれまで試してみました何これ

if start_currenttime < start_oldtime and end_currenttime >= start_oldtime:
    start=start_currenttime
    flag=1

    if end_currenttime>end_oldtime:
        end=end_currenttime

if start_currenttime >= start_oldtime and start_currenttime <= end_oldtime and end_currenttime > end_oldtime:
    flag=1
    end=end_currenttime

if flag:
     return str(start)+"-"+str(end)
else: return "-1"
ジャマイカ:

これは、ループのための基本的に、あなたがそれを行うことができますどのように一つの方法です。

data = ['08:00-08:50', '09:00-09:50', '10:00-10:50', '11:00-11:50', '11:00-12:15', '12:00-12:50', '12:00-13:15', '13:00-13:50', '14:00-15:15', '15:30-18:10']
data_ = [interval.split('-') for interval in data]


interval_idx = 0
for i in data_:
    if i[0] > data_[interval_idx][1]:
        interval_idx += 1
        data_[interval_idx] = i
    else:
        data_[interval_idx] = [data_[interval_idx][0], i[1]]

data_=['-'.join(interval) for interval in data_[:interval_idx+1]]

print(data_)

出力:

['08:00-08:50', '09:00-09:50', '10:00-10:50', '11:00-13:50', '14:00-15:15', '15:30-18:10']

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=10363&siteId=1