Given a string date
representing a Gregorian calendar date formatted as YYYY-MM-DD
, return the day number of the year.
Example 1:
Input: date = "2019-01-09" Output: 9 Explanation: Given date is the 9th day of the year in 2019.
Example 2:
Input: date = "2019-02-10" Output: 41
Example 3:
Input: date = "2003-03-01" Output: 60
Example 4:
Input: date = "2004-03-01" Output: 61
Constraints:
date.length == 10
date[4] == date[7] == '-'
, and all otherdate[i]
‘s are digitsdate
represents a calendar date between Jan 1st, 1900 and Dec 31, 2019.
Solution:
Key: checking whether that year is a leap year or not.
is_leap = (year % 4 == 0 and year % 100 !=0) or year % 400 == 0
Time complexity: O(1)
Space complexity: O(1)
Python
1 2 3 4 5 6 7 8 9 |
# Author: Huahua class Solution: def dayOfYear(self, date: str) -> int: y, m, d = int(date.split("-")[0]), int(date.split("-")[1]), int(date.split("-")[2]) leap = (y % 4 == 0 and y % 100 != 0) or y % 400 == 0 days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] s = sum(days[0:m-1]) + d if leap and m > 2: s += 1 return s |
请尊重作者的劳动成果,转载请注明出处!花花保留对文章/视频的所有权利。
如果您喜欢这篇文章/视频,欢迎您捐赠花花。
If you like my articles / videos, donations are welcome.
Be First to Comment