【LeetCode每日一题】1904. 你完成的完整对局数
2023-12-14 05:23:52
给你两个字符串 startTime
和 finishTime
,均符合 "HH:MM"
格式,分别表示你 进入 和 退出 游戏的确切时间,请计算在整个游戏会话期间,你完成的 完整对局的对局数 。
如果 finishTime
早于 startTime
,这表示你玩了个通宵(也就是从 startTime
到午夜,再从午夜到 finishTime
)。
? 例如,如果 startTime = "05:20"
且 finishTime = "05:59"
,这意味着你仅仅完成从 05:30
到 05:45
这一个完整对局。而你没有完成从 05:15
到 05:30
的完整对局,因为你是在对局开始后进入的游戏;同时,你也没有完成从 05:45
到 06:00
的完整对局,因为你是在对局结束前退出的游戏。
假设你是从 startTime
进入游戏,并在 finishTime
退出游戏,请计算并返回你完成的 完整对局的对局数 。
思路如图:
代码实现:
var numberOfRounds = function(loginTime, logoutTime) {
let loginTimeArr = loginTime.split(':');
// let login = loginTimeArr[0]*60+Math.ceil(loginTimeArr[1]/15)*15;
// 字符串加数字会拼接起来
// let login = loginTimeArr[0]*60+loginTimeArr[1]
let login = loginTimeArr[0]*60+Number(loginTimeArr[1])
let logoutTimeArr = logoutTime.split(':');
let logout = logoutTimeArr[0]*60+Number(logoutTimeArr[1])
if(logout<login){
logout+=24*60;
}
login = login-loginTimeArr[1] + Math.ceil(loginTimeArr[1]/15)*15;
logout = logout-logoutTimeArr[1] + Math.floor(logoutTimeArr[1]/15)*15;
return (logout-login)/15>0?(logout-login)/15:0;
// 遗漏掉了一种情况 就是 一个向上取整,一个向下取整,然后logout< login
// "00:47" "00:57" 应该先比较后对时间进行处理
};
文章来源:https://blog.csdn.net/qq_43720551/article/details/134985265
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!