如何使用Python來(lái)計(jì)算公交發(fā)車(chē)時(shí)間
問(wèn)題描述:
公交車(chē)每天會(huì)按照一定間隔發(fā)車(chē),由于不同時(shí)間段經(jīng)過(guò)擁堵路段的用時(shí)不-樣,所以給定路線下公交車(chē)每趟(每車(chē)次)行駛時(shí)間差異也很大,現(xiàn)在給出某路線某天各車(chē)次公交車(chē)離開(kāi)始發(fā)站和到達(dá)終點(diǎn)站的時(shí)間,請(qǐng)求出該天耗時(shí)最長(zhǎng)車(chē)次的行駛時(shí)間。
輸入說(shuō)明:
第- -行是一個(gè)整數(shù)N,示接下來(lái)的公交車(chē)車(chē)次的總數(shù)。之后是N行,每行開(kāi)始是字母S或Z,表示是從始發(fā)站開(kāi)出還是終點(diǎn)站開(kāi)出。之后兩個(gè)時(shí)間表示起始時(shí)間,時(shí)間給出方式為小時(shí)+分鐘的形式,如S 0830 1210表示8點(diǎn)30分離開(kāi)始發(fā)站,12點(diǎn)10分達(dá)到終點(diǎn)站。
輸出說(shuō)明:
耗時(shí)最長(zhǎng)的車(chē)次的行駛時(shí)間,比如耗時(shí)最長(zhǎng)車(chē)輛的始發(fā)時(shí)間是0830到1025,那么輸出1H55M。
解決方案:
通過(guò)題目我們可以發(fā)現(xiàn)題目的本意是求兩點(diǎn)之間的時(shí)間,所以首先應(yīng)該思考如何在題目給的格式下計(jì)算時(shí)間差,我們可以將時(shí)間分成兩部分分開(kāi)計(jì)算,利用取整和取余算出時(shí)間傳入一個(gè)新列表然后找出最大最小輸出
進(jìn)行格式的處理方便計(jì)算
N = int(input()) list2 = [] while N>0: list1 = list(map(str,input().split()))
計(jì)算時(shí)間
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))
最后,遇到這種題我們應(yīng)該冷靜思考,抓住題的本意,尋找規(guī)律,總能解決問(wèn)題。
好啦!今天的分享到這里就結(jié)束了,希望大家持續(xù)關(guān)注馬哥教育官網(wǎng)!版權(quán)聲明:轉(zhuǎn)載文章來(lái)自公開(kāi)網(wǎng)絡(luò),版權(quán)歸作者本人所有,推送文章除非無(wú)法確認(rèn),我們都會(huì)注明作者和來(lái)源。如果出處有誤或侵犯到原作者權(quán)益,請(qǐng)與我們聯(lián)系刪除或授權(quán)事宜。