Leetcode每日一题:1154.一年中的第几天

跨年之夜,做一道日历题

题目描述:

给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。

示例 1:

输入:date = "2019-01-09"
输出:9
解释:给定日期是2019年的第九天。

示例 2:

输入:date = "2019-02-10"
输出:41

思路:先把字符串中的年月日取出来并转化成整形

这里使用了string类中的substr函数,第一个参数表示从第几位开始取,第二个参数表示取几位

Leetcode每日一题:1154.一年中的第几天_第1张图片

取出年月日之后,用一个数组存每一个月的天数(这里我们选择开大小为13的,第一个索引为0的位置存0,这样月份就和索引一一对应了)。接着判断是否为闰年,若为闰年则二月份对应的数组元素加1,为29天。接着就是循环遍历轻松解决了

代码实现:

class Solution {
public:
    int dayOfYear(string date) {
        int year=stoi(date.substr(0,4));
        int month=stoi(date.substr(5,2));
        int day=stoi(date.substr(8,2));

        int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

        int ans=0;
        if(year%400==0||year%4==0&&year%100!=0)
        {
            months[2]++;
        }
        for(int i=1;i

2023年最后一篇博客,祝所有看到这篇博客的人2024好运爆棚

荏苒时光酿成甘酒,愿一切努力终有所得

你可能感兴趣的:(leetcode,算法)