1154.一年中的第几天
【LetMeFly】1154.一年中的第几天:2023年最后一道每日一题
力扣题目链接:https://leetcode.cn/problems/day-of-the-year/
给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。
示例 1:
输入:date = "2019-01-09" 输出:9 解释:给定日期是2019年的第九天。
示例 2:
输入:date = "2019-02-10" 输出:41
提示:
date.length == 10date[4] == date[7] == '-',其他的date[i]都是数字date表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日
方法一:日期处理
首先明确一年中的12个月分别有几天(以非闰年为例):dayOfMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]。
如果是闰年,那么2月有29天(dayOfMonth[1] = 29)。
怎么判断一年是否为闰年呢?
- 如果年份是100的倍数,则只有年份为400的倍数时为闰年
- 否则,年份为4的倍数时为闰年
从给定字符串中,我们可以很方便地“分离出”年y月m日d,从1月到m - 1月累加这个月的天数,再加上d即为答案。
- 时间复杂度$O(1)$,将一年的
12个月视为常数 - 空间复杂度$O(1)$
AC代码
C++
1 | |
Python
1 | |
同步发文于CSDN,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/135315004
1154.一年中的第几天
https://blog.letmefly.xyz/2023/12/31/LeetCode 1154.一年中的第几天/