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

蓝桥杯之日期问题2

文章目录

    • 需求1
      • 1.1 代码
    • 2.需求2
      • 2.1代码

需求1

2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。

有人表示 20200202 是 “千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。

也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此小明也不认同,因为大约 100 年后就能遇到下一个 ABABBABA 型的回文日期:21211212 即 2121 年 12 月 12 日。算不上 “千年一遇”,顶多算 “千年两遇”。

给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。

输入描述
输入包含一个八位整数
N
N,表示日期。

对于所有评测用例,
10000101

N

89991231
10000101≤N≤89991231,保证
N
N 是一个合法日期的 8 位数表示。

输出描述
输出两行,每行 1 个八位数。第一行表示下一个回文日期,第二行表示下一个 ABABBABA 型的回文日期。

输入输出样例
示例
输入

20200202
copy
输出

20211202
21211212
copy
运行限制
最大运行时间:1s
最大运行内存: 256M

1.1 代码

from datetime import datetime, timedelta# 判断一个日期字符串是否为回文
def is_palindrome(date_str):return date_str == date_str[::-1]# 判断一个日期字符串是否为 ABABBABA 型回文
def is_ababbaba(date_str):return date_str[:2] == date_str[2:4] and is_palindrome(date_str)# 获取输入的日期
input_date_str = input()
input_date = datetime.strptime(input_date_str, '%Y%m%d')# 从输入日期的下一天开始查找
current_date = input_date + timedelta(days=1)# 初始化结果
next_palindrome_date = None
next_ababbaba_date = Nonewhile True:# 注意我们只需要前8位日期current_date_str = current_date.strftime('%Y%m%d')# 检查是否为回文日期if next_palindrome_date is None and is_palindrome(current_date_str):next_palindrome_date = current_date_str# 检查是否为 ABABBABA 型回文日期if next_ababbaba_date is None and is_ababbaba(current_date_str):next_ababbaba_date = current_date_str# 如果两个结果都找到了,停止循环if next_palindrome_date and next_ababbaba_date:break# 日期加一天current_date += timedelta(days=1)# 输出结果
print(next_palindrome_date)
print(next_ababbaba_date)

2.需求2

小蓝正在上小学,老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩,直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。

没想到,日记很快就被老师发现了问题,原来小蓝记完 8 月 31 日的日记,竟又记了 8 月 32 日和 8 月 33 日的日记。这显然是有问题的,因为根本没有 8 月 32 日和 8 月 33 日。

给定一个月份和一个日期,请问 2021 年有没有这一天。

输入描述
输入的第一行包含一个整数
m
m,表示月份。

第二行包含一个整数
d
d,表示日期。

其中,
1

m

20

1

d

40
1≤m≤20,1≤d≤40。

输出描述
如果2021年有
m
m 月
d
d 日,输入 yes,否则输出 no。

输入输出样例
示例 1
输入

8
32
copy
输出

no
copy
示例 2
输入

2
28
copy
输出

yes
copy
运行限制
最大运行时间:1s
最大运行内存: 128M

2.1代码

# @File: 17.合法日期.py
# @Author: chen_song
# @Time: 2025-02-26 17:12
from datetime import datetime# 获取用户输入的月份和日期
month = int(input())
day = int(input())# 定义函数判断日期是否合法
def whetherLegalDate(month, day):try:# 尝试创建一个日期对象,年份可以使用一个合理的范围,这里用 2024 作为示例# 因为 2024 是闰年,可以覆盖闰年 2 月 29 日的情况datetime(2021, month, day)return Trueexcept ValueError:# 若创建日期对象时抛出 ValueError 异常,说明日期不合法return False# 调用函数进行判断并输出结果
if whetherLegalDate(month, day):print("yes")
else:print("no")
http://www.lryc.cn/news/543326.html

相关文章:

  • 【STL】7.STL常用算法(1)
  • uniapp 本地数据库多端适配实例(根据运行环境自动选择适配器)
  • 百度觉醒,李彦宏渴望光荣
  • 【算法工程】大模型局限性新发现之解决能连github但无法clone项目的问题
  • SOME/IP-SD -- 协议英文原文讲解3
  • 软件测试八股文,软件测试常见面试合集【附答案】
  • 数据结构秘籍(一)线性数据结构
  • TFChat:腾讯大模型知识引擎(DeepSeek R1)+飞书机器人实现AI智能助手
  • 使用消息队列怎样防止消息重复?
  • MySQL安装多版本与版本切换
  • Docker02 - 深入理解Docker
  • 检查SSH安全配置-sshd服务端未认证连接最大并发量配置
  • HarmonyOS Design 介绍
  • C++中的多重继承
  • Java基础第14天-坦克大战【1】
  • Java线程池入门04
  • 【论文笔记-ECCV 2024】AnyControl:使用文本到图像生成的多功能控件创建您的艺术作品
  • 计算机毕业设计 ——jspssm519Springboot 的幼儿园管理系统
  • 山东大学软件学院人工智能导论实验之知识库推理
  • 【Uniapp-Vue3】点击将内容复制到剪切板
  • 英伟达 Isaac Sim仿真平台体验【2】
  • 低代码与开发框架的一些整合[3]
  • deepseek-r1-centos-本地服务器配置方法
  • C语言实现通讯录项目
  • Effective Java读书笔记 draft
  • DeepSeek 助力 Vue 开发:打造丝滑的滑块(Slider)
  • wordpress使用CorePress主题设置项总结
  • 逆向pyinstaller打包的exe软件,获取python源码(6)
  • 蓝桥杯 五子棋对弈
  • 【单片机】MSP430MSP432入门