你完成的完整对局数

Leetcode 1904.你完成的完整对局数

题目描述:

一款新的在线电子游戏在近期发布,在该电子游戏中,以 刻钟 为周期规划若干时长为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;
    }
};
posted @ 2021-11-15 14:01  Chilyyy  阅读(42)  评论(0)    收藏  举报