溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python計算公交發(fā)車時間的完整代碼

發(fā)布時間:2020-10-06 18:14:06 來源:腳本之家 閱讀:190 作者:王曦 欄目:開發(fā)技術(shù)

問題描述

公交車每天會按照一定間隔發(fā)車 , 由于不同時間段經(jīng)過擁堵路段的用時不 - 樣,所以給定路線下公交車每趟 ( 每車次 ) 行駛時間差異也很大,現(xiàn)在給出某路線某天各車次公交車離開始發(fā)站和到達(dá)終點站的時間,請求出該天耗時最長車次的行駛時間。輸入說明 : 第 - - 行是一個整數(shù) N, 示接下來的公交車車次的總數(shù)。之后是 N 行,每行開始是字母 S 或 Z, 表示是從始發(fā)站開出還是終點站開出。之后兩個時間表示起始時間,時間給出方式為小時 + 分鐘的形式,如 S 0830 1210 表示 8 點 30 分離開始發(fā)站, 12 點 10 分達(dá)到終點站。

輸出說明 : 耗時最長的車次的行駛時間,比如耗時最長車輛的始發(fā)時間是 0830 到 1025, 那么輸出 1H55M 。

解決方案

通過題目我們可以發(fā)現(xiàn)題目的本意是求兩點之間的時間,所以首先應(yīng)該思考如何在題目給的格式下計算時間差,我們可以將時間分成兩部分分開計算,利用取整和取余算出時間傳入一個新列表然后找出最大最小輸出

進(jìn)行格式的處理方便計算

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))

結(jié)語

遇到這種題我們應(yīng)該冷靜思考,抓住題的本意,尋找規(guī)律,總能解決問題。

以上所述是小編給大家介紹的Python計算公交發(fā)車時間的完整代碼,希望對大家有所幫助!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI