当前位置: 首页 > news >正文

2023.12.31每日一题

LeetCode每日一题

2023年的最后一题

1154.一年中的第几天

1154. 一年中的第几天 - 力扣(LeetCode)

描述

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

示例 1:

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

示例 2:

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

提示:

  • date.length == 10
  • date[4] == date[7] == '-',其他的 date[i] 都是数字
  • date 表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日

思路

根据给出的date,获取年份(YYYY),月份(MM),天数(DD)

先按平年。即每年365天计算出每个月之前的天数,然后再判断年份是否为闰年,为闰年并且月份大于等于3,则在天数上加1.

代码

C++
class Solution {
public:int dayOfYear(string date) {int year = getNum(0,4,date);int month = getNum(5,7,date);int day = getNum(8,10,date);// 每个月之前的总天数vector<int> daysBeforeMonth = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};int days = daysBeforeMonth[month - 1] + day;if((year % 400 ==0 || (year % 4 == 0 && year % 100 != 0)) && month >= 3) days++;return days;}// 根据给定范围提取对应的数字int getNum(int start, int end , string date){int number = 0;for(int i = start; i < end; i++){number *= 10;number += date[i] - '0';}return number;}
};
Java

charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。

class Solution {public int dayOfYear(String date) {int year = getNum(0,4,date);int month = getNum(5,7,date);int day = getNum(8,10,date);// 每月之前的总天数int[] daysBeforeMonth = new int[]{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};int days = daysBeforeMonth[month - 1] + day;if((year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) && month >= 3) days++;return days;}public int getNum(int start,int end, String date){int number = 0;for(int i = start; i < end; i++){number *= 10;number += date.charAt(i) - '0';}return number;}
}
http://www.lryc.cn/news/271117.html

相关文章:

  • Flink实时电商数仓(八)
  • Python Pymysql实现数据存储
  • 软件测试/测试开发丨Python 常用第三方库 pymysql
  • 第二节 linux操作系统安装与配置
  • ChatGPT 对SEO的影响
  • 光伏逆变器MPPT的作用、原理及算法
  • 一文详解pyspark常用算子与API
  • 使用Rollup 搭建开发环境
  • ubuntu:beyond compare 4 This license key has been revoked 解决办法
  • 华为交换机生成树STP配置案例
  • Avalonia框架下实现热更新
  • 适用于各种危险区域的火焰识别摄像机,实时监测、火灾预防、安全监控,为安全保驾护航
  • react-router-dom5升级到6
  • Linux调试工具—gdb
  • SpringCloud(H版alibaba)框架开发教程之nacos做配置中心——附源码(2)
  • 网络摄像头爆破实战
  • 亚信安慧AntDB数据并行加载工具的实现(二)
  • 【Java进阶篇】JDK新版本中的新特性都有哪些
  • 力扣labuladong一刷day49天迪杰斯特拉
  • MCS接口技术----定时/计数,中断
  • Java开发框架和中间件面试题(10)
  • C++ 具名要求-基本概念-指定该类型对象可以从右值构造
  • Python如何把类当做字典来访问及浅谈Python类命名空间
  • 简述Redis备份策略以及对应的实现机制
  • 【5G PHY】5G 物理层加速卡介绍
  • lftp学习笔记
  • idea 插件开发之 HelloWorld
  • 极速文件搜索工具Everything结合内网穿透实现远程搜索本地文件
  • 【PowerMockito:编写单元测试过程中采用when打桩失效的问题】
  • [蓝桥杯 2018省赛]回家路费