.robotor 2022-12-09 14:24 采纳率: 100%
浏览 39
已结题

## 蓝桥杯提问,通过率百分之40,想知道哪里有些问题

img

import os
import sys

# 请在此输入您的代码
day = int(input())
for i in range(day+1,99999999):
  i = str(i)
  if int(i[4:6])<=12 and int(i[6:])<=30:
    if str(i) == str(i)[::-1]:
      print(i)
      break
for i in range(day+1,99999999):
  i = str(i)
  if int(i[4:6])<=12 and int(i[6:])<=30:
    if i[0] == i[2] == i[5] ==i[7] and i[1] == i[3] == i[4] == i[6]:
     print(i)
     break
  • 写回答

2条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-12-09 16:07
    关注

    时间复杂度太高,没必要把所有日子都拿出来比较,先构建回文日期和ABABBABA型日期要简单多了。
    这里只需要考虑后四位,而且最后一位不能是0。总共只有342个日期,排序后找N后面第一个就好了。

    
    # 回文日期
    date = []
    for i in (1,3,5,7,8,10,12):
        for j in range(1,32):
            if j%10:
                d = f"{i:0>2}{j:0>2}"
                date.append(d[::-1]+d)
    for i in (4,6,9,11):
        for j in range(1,30):
            if j%10:
                d = f"{i:0>2}{j:0>2}"
                date.append(d[::-1]+d)
    for j in range(1,30):
        if j%10:
            d = f"02{j:0>2}"
            date.append(d[::-1]+d)
    
    # ABABBABA型日期
    date2 = []
    for i in range(1,13):
        if i%10:
            d = f"{i:0>2}"*2
            date2.append(d[::-1]+d)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月9日

悬赏问题

  • ¥23 (标签-bug|关键词-密码错误加密)
  • ¥66 比特币地址如何生成taproot地址
  • ¥20 数学建模数学建模需要
  • ¥15 关于#lua#的问题,请各位专家解答!
  • ¥15 什么设备可以研究OFDM的60GHz毫米波信道模型
  • ¥15 不知道是该怎么引用多个函数片段
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决