JS高效算法:计算距下一场可用比赛的剩余天数
下一场可用比赛间隔天数计算函数实现
核心采用模7运算自动处理周循环边界,无需额外判断跨周逻辑,代码简洁易维护,可覆盖所有边界场景。
实现代码
function getNumberOfDaysUntilNextAvailableGame(todaysDayNumberInWeek, autoEventDays) { // 校验可用日期串长度合法性 if (autoEventDays.length !== 7) { console.log("ERROR: Invalid AutoEventDays: " + autoEventDays); return -1; } // 统一转换为数字类型,兼容字符串格式的周数入参 const today = Number(todaysDayNumberInWeek); // 遍历0到6天,找到第一个可用比赛的日期 for (let offset = 0; offset < 7; offset++) { const currentWeekDay = (today + offset) % 7; if (autoEventDays.charAt(currentWeekDay) === '1') { return offset; } } // 全周无可用比赛 return -1; }
测试验证
给出的所有测试用例均可正确返回预期结果:
- 周六入参6 + 可用串
0111110→ 返回2 - 周一入参"1" + 可用串
0111110→ 返回0 - 周二入参"2" + 可用串
0000001→ 返回4 - 周三入参3 + 可用串
1110011→ 返回2
内容的提问来源于stack exchange,提问作者HerrimanCoder
相关产品推荐
相关产品推荐

