Python|公交車最長時間問題
- 2019 年 12 月 27 日
- 筆記
問題描述
公交車每天會按照一定間隔發車,由於不同時間段經過擁堵路段的用時不-樣,所以給定路線下公交車每趟(每車次)行駛時間差異也很大,現在給出某路線某天各車次公交車離開始發站和到達終點站的時間,請求出該天耗時最長車次的行駛時間。
輸入說明:第一行是一個整數N,表示接下來的公交車車次的總數。之後是N行,行開始是字母S或Z,表示是從始發站開出還是終點站開出。之後兩個時間表示起始時間,時間給出方式為小時+分鐘的形式,如S0830 1210表示8點30分離開始發站,12點10分達到終點站。
輸出說明:耗時最長的車次的行駛時間,比如耗時最長車輛的始發時間是0830到1025,那麼輸出1H55M。
輸入樣例: 6
S 0800 1010
Z 0805 1020
S 0810 1015
Z 0815 1020
S 0820 1045
Z 0825 1050
輸出樣例: 2H25M
解決方案
首先讀懂題目的要求,可從輸入樣例中看出輸入的數據中有兩個時間,前面的為出發時間,後面的為終點時間,由於前面還有字符s和z,所以我們採用切片的方法,切取其中的兩個時間,然後分別對小時和分鐘進行計算,例如第一個數據中小時應為l[7:9]-l[2:4],分鐘數為l[9:11]-l[4:6].然後由於有些數據後面的分鐘大於前面的分鐘,所以需將小時先轉化為分鐘與之相加減,最後在將所有的分鐘整除60和對60取模,然後按照題中輸出格式輸出。
代碼示例
N = int(input())l = []l1 = []for i in range(N): a = list(map(str,input().split())) a = ''.join(a) l.append(a)for i in l: s1 = int(i[5:7]) – int(i[1:3]) s2 = int(i[7:9]) – int(i[3:5]) time = s1*60+s2 l1.append(time)zd = max(l1)M = zd%60H = zd//60print("%dH%dM" % (H,M)) |
---|
END
實習編輯 | 王文星
責 編 | 江來洪
where2go 團隊