前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python|公交车最长时间问题

Python|公交车最长时间问题

作者头像
算法与编程之美
发布2019-12-27 15:25:57
4280
发布2019-12-27 15:25:57
举报
文章被收录于专栏:算法与编程之美

问题描述

公交车每天会按照一定间隔发车,由于不同时间段经过拥堵路段的用时不-样,所以给定路线下公交车每趟(每车次)行驶时间差异也很大,现在给出某路线某天各车次公交车离开始发站和到达终点站的时间,请求出该天耗时最长车次的行驶时间。

输入说明:第一行是一个整数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 团队


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档