美文网首页
LeetCode 1154. Day of the Year (

LeetCode 1154. Day of the Year (

作者: LiNGYu_NiverSe | 来源:发表于2020-11-18 00:01 被阅读0次

    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 other date[i]'s are digits
    date represents a calendar date between Jan 1st, 1900 and Dec 31, 2019.

    Solution

    class Solution:
        def dayOfYear(self, date: str) -> int:
            y, m, d = map(int, date.split("-"))
            days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
            if y % 400 == 0 or (y % 100 != 0 and y % 4 == 0):
                days[1] = 29
            return sum(days[:(m-1)]) + d 
    

    Explanation
    Since days of each month is different and we need to consider if the year is leap year, we can simply create a list of days of each month. Then if the year is a leap year, we can update the days of February to 29. Finally we can use the month as index to sum all days up (don't forget d)

    相关文章

      网友评论

          本文标题:LeetCode 1154. Day of the Year (

          本文链接:https://www.haomeiwen.com/subject/tekqiktx.html