leetcode 6184. 统计共同度过的日子数
leetcode 6184. 统计共同度过的日子数
题目描述
Alice 和 Bob 计划分别去罗马开会。
给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 leaveBob 。Alice 会在日期 arriveAlice 到 leaveAlice 之间在城市里(日期为闭区间),而 Bob 在日期 arriveBob 到 leaveBob 之间在城市里(日期为闭区间)。每个字符串都包含 5 个字符,格式为 "MM-DD" ,对应着一个日期的月和日。
请你返回 Alice和 Bob 同时在罗马的天数。
你可以假设所有日期都在 同一个 自然年,而且 不是 闰年。每个月份的天数分别为:[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 。
实例1
输入:arriveAlice = "08-15", leaveAlice = "08-18", arriveBob = "08-16", leaveBob = "08-19"
输出:3
解释:Alice 从 8 月 15 号到 8 月 18 号在罗马。Bob 从 8 月 16 号到 8 月 19 号在罗马,他们同时在罗马的日期为 8 月 16、17 和 18 号。所以答案为 3 。
实例2
输入:arriveAlice = "10-01", leaveAlice = "10-31", arriveBob = "11-01", leaveBob = "12-31"
输出:0
解释:Alice 和 Bob 没有同时在罗马的日子,所以我们返回 0 。
提示
所有日期的格式均为 "MM-DD" 。
Alice 和 Bob 的到达日期都 早于或等于 他们的离开日期。
题目测试用例所给出的日期均为 非闰年 的有效日期。
题目思路
将到达和离开的日期换成天数,再根据共同区间日期的思想公式解决 date = MAX{ 0 , MIN(c , d) - MAX(a , b)}(后面的最小值减去前面的最大值日期) 。
class Solution {
public:int months[13]{0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int getString(string s){int a,b,res = 0;sscanf(s.c_str(),"%d-%d",&a,&b);for(int i=1;i<a;i++)res+=months[i];return res+b;}int countDaysTogether(string arriveAlice, string leaveAlice, string arriveBob, string leaveBob) {int a = getString(arriveAlice);int b = getString(leaveAlice);int c = getString(arriveBob);int d = getString(leaveBob);return max(0,min(b,d)-max(a,c)+1);}
};
leetcode 6184. 统计共同度过的日子数相关推荐
- LeetCode 2409. 统计共同度过的日子数
2409. 统计共同度过的日子数 [分析]区间求交问题,假设区间1为[a, b],区间2为[c, d],那么两个区间的共同长度为min(b, d) - max(a, c),如果是天数再+1,不想交的话 ...
- 【Leetcode】 2409. 统计共同度过的日子数
题目链接 2409. 统计共同度过的日子数 - 力扣(LeetCode) 题目本身是一道简单题,但是自己一开始做起来毫无头绪,只是将各种情况的罗列. 即便如此,依旧面临着最后结果如何将字符串转换,以及 ...
- 【leetcode】2409. 统计共同度过的日子数(js实现)
1. 题目 2409. 统计共同度过的日子数 2. 思路 用最早离开的时间 减去 最晚到达的时间,就是重叠的时间. 3. 代码实现 /*** @param {string} arriveAlice* ...
- 题目:2409.统计共同度过的日子数
题目来源: leetcode题目,网址:2409. 统计共同度过的日子数 - 力扣(LeetCode) 解题思路: 获取二人共同度过的日子的起始值和终止值,计算即可. 起始值为二人到达日子中的较 ...
- 【每日一题Day180】LC2409统计共同度过的日子数 | 模拟
统计共同度过的日子数[LC2409] Alice 和 Bob 计划分别去罗马开会. 给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 leaveBob .Ali ...
- LeetCode简单题之统计共同度过的日子数
题目 Alice 和 Bob 计划分别去罗马开会. 给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 leaveBob .Alice 会在日期 arriveAl ...
- 【2409. 统计共同度过的日子数】
来源:力扣(LeetCode) 描述: Alice 和 Bob 计划分别去罗马开会. 给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 leaveBob .Al ...
- LeetCode 2302. 统计得分小于 K 的子数组数目(前缀和+二分查找)
文章目录 1. 题目 2. 解题 1. 题目 一个数组的 分数 定义为数组之和 乘以 数组的长度. 比方说,[1, 2, 3, 4, 5] 的分数为 (1 + 2 + 3 + 4 + 5) * 5 = ...
- 2022-6-13 咒语和药水的成功对数,替换字符后匹配,统计得分小于 K 的子数组数目,......
1. 咒语和药水的成功对数 You are given two positive integer arrays spells and potions, of length n and m respec ...
最新文章
- javase-线程生命周期
- 系统接口对接的进度工作应该谁来干_项目的交付进度总是延迟,项目经理找了很久才发现是这4类原因...
- 【HDU - 1599】find the mincost route (Floyd最小环,最短路问题)
- 靠知识赚钱只是较高级的体力劳动,靠智慧赚钱才能真正的富有。
- 线上多服务管理工具实例剖析
- 企业网络信息安全意识宣贯——屏保制作
- 用puttygen工具把私钥id_rsa转换成公钥id_rsa.ppk
- EasyDarwin测试
- 动态服务器值 回放报错 没有关联到_LR关联(带附件) - 缺1份淡定ㄣ - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 深度学习Hello World --- 手写体识别 实战
- safari打不开cookies_从Mac和iOS上的safari阻止cookies的设置方法
- 地球的3D模型制作教程【3DsMax】
- 【Matlab文件操作】打开、创建、更改和删除文件与文件夹以及获取文件信息
- python的数据类型分为复数_Python的基本数据类型
- 重装 Macos sierra系统 U盘
- TPP稳定性之场景隔离和多租户
- webservice接口等待时间_调用webservice超时问题的解决
- ASP.NET Core2.1 你不得不了解的GDPR(Cookie处理)
- 计算机编程 寒假项目总结,我的软件工程之路--寒假总结
- CCF 201803-4棋局评估