你完成的完整对局数
题目描述:
一款新的在线电子游戏在近期发布,在该电子游戏中,以 刻钟 为周期规划若干时长为15分钟的游戏对局。这意味着,在HH:00、HH:15、HH:30和HH:45,将会开始一个新的对局,其中HH用一个从00到23的整数表示。游戏中使用24小时制的时钟 ,所以一天中最早的时间是00:00,最晚的时间是23:59。
给你两个字符串 startTime 和 finishTime ,均符合 "HH:MM" 格式,分别表示你进入和退出游戏的确切时间,请计算在整个游戏会话期间,你完成的完整对局的对局数。
如果finishTime早于startTime,这表示你玩了个通宵(也就是从startTime到午夜,再从午夜到finishTime)。
假设你是从startTime进入游戏,并在finishTime退出游戏,请计算并返回你完成的完整对局的对局数。
题解:
统计一定范围内相同长度的区间块数量,将结束的点修改为最后面的点,再除以区间长度即可统计数量。
class Solution {
public:
int numberOfRounds(string st, string ft) {
int smin=stoi(st.substr(0,2))*60+stoi(st.substr(3,2));
int fmin=stoi(ft.substr(0,2))*60+stoi(ft.substr(3,2));
if(smin>fmin) fmin+=24*60;
return (fmin/15*15-smin)/15;
}
};

浙公网安备 33010602011771号