Python計算公交發車時間的完整程式碼
阿新 • • 發佈:2020-02-12
問題描述
公交車每天會按照一定間隔發車,由於不同時間段經過擁堵路段的用時不 - 樣,所以給定路線下公交車每趟 ( 每車次 ) 行駛時間差異也很大,現在給出某路線某天各車次公交車離開始發站和到達終點站的時間,請求出該天耗時最長車次的行駛時間。輸入說明 : 第 - - 行是一個整數 N,示接下來的公交車車次的總數。之後是 N 行,每行開始是字母 S 或 Z,表示是從始發站開出還是終點站開出。之後兩個時間表示起始時間,時間給出方式為小時 + 分鐘的形式,如 S 0830 1210 表示 8 點 30 分離開始發站, 12 點 10 分達到終點站。
輸出說明 : 耗時最長的車次的行駛時間,比如耗時最長車輛的始發時間是 0830 到 1025,那麼輸出 1H55M 。
解決方案
通過題目我們可以發現題目的本意是求兩點之間的時間,所以首先應該思考如何在題目給的格式下計算時間差,我們可以將時間分成兩部分分開計算,利用取整和取餘算出時間傳入一個新列表然後找出最大最小輸出
進行格式的處理方便計算
N = int(input()) list2 = [] while N>0: list1 = list(map(str,input().split()))
計算時間
a = (abs(int(list1[1])//100-int(list1[2])//100))*60 b = int(list1[2])%100-int(list1[1])%100
求出最大最小並輸出
c = max(list2) d = min(list2) print('%dH%dM' % (c//60,c-(c//60)*60))
完整程式碼如下
N = int(input()) list2 = [] while N>0: list1 = list(map(str,input().split())) a = (abs(int(list1[1])//100-int(list1[2])//100))*60 b = int(list1[2])%100-int(list1[1])%100 list2.append(a+b) N-=1 c = max(list2) d = min(list2) print('%dH%dM' % (c//60,c-(c//60)*60))
結語
遇到這種題我們應該冷靜思考,抓住題的本意,尋找規律,總能解決問題。
以上所述是小編給大家介紹的Python計算公交發車時間的完整程式碼,希望對大家有所幫助!