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

回文日期门牌制作

题目:

题目描述

如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。

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

输入描述

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

对于所有评测用例,10000101≤�≤8999123110000101≤N≤89991231,保证 �N 是一个合法日期的 8 位数表示。

输出描述

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

 主要思路

首先,是ABABBABA型的数也是回文数。输入的情况有以下几种:1)该数为ABABBABA型的数,则下一个回文数为ABAB= ABAB+1,且BABA为合法日期;2)该数为回文数但不是ABABBABA型(ABCDDCBA),则下一个回文数为[ABCD+1,1+CDBA],当日期不合格的时,继续++;以此类推

后面发现这样很复杂,每个月份天数还不一样,就去看了别人的答案,发现他们都是用暴力遍历的,虽然很暴力,但是很简单。就从输入的数开始往后推,直到下一个回文数和ABABBABA的数。

 代码:

import os
import sys
import datetime #导入日期库
# 请在此输入您的代码
idate=input()
y=int(idate[:4])#取出输入的年月日
m=int(idate[4:6])
d=int(idate[6:])
dd=datetime.date(y,m,d)#将输入的表示日期的字符串转换成日期
flag=True #回文日期只输出一次
for n in range(9999999):dd=dd+datetime.timedelta(days=1)#日期不断增加1天sd=str(dd).replace('-','')#将日期中的-去掉if sd[:]==sd[::-1]:#判断日期是否是回文if flag:print(int(sd))#输出回文日期flag=False#下次不输出回文日期if sd[0]==sd[2]==sd[5]==sd[7] and sd[1]==sd[3]==sd[4]==sd[6]: #判断是否是ABABBABA类型print(int(sd))#输出break#结束循环

tips:

 datetime详解

题目:

题目描述

请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?

 

主要思路:

第一个想到的还是字典,遍历1-2020所有的数字,将每个数字的出现次数记录为values。

后面看题解,发现str有.count('2')的方法,这样更简单。所需的空间也更小。 

代码:

import os
import sys# 请在此输入您的代码
dict_num = {}
for j in range(1,2021):for i in str(j):if i not in dict_num.keys():dict_num[i] = 1else:dict_num[i] = dict_num[i] + 1
print(dict_num['2'])#另一种方法
'''
a = 0 
for i in range(1,2021):a = a + str(i).count('2')
print(a)
'''

 tips:

对python一些基础的语法还不太熟悉

http://www.lryc.cn/news/32348.html

相关文章:

  • 基于半车悬架的轴距预瞄与轴间预瞄仿真对比
  • Linux开发 安装JDK8、p4
  • 基于 x86 SoC 的车辆智能驾驶舱和ADAS设计(一)
  • 类模板函数模板
  • Leetcode DAY 56: 两个字符串的删除操作 and 编辑距离
  • 系统检测维护工具Wsycheck使用(18)
  • 111 ok
  • Python API教程:API入门
  • SpringMVC学习笔记
  • Linux学习记录01
  • VScode 插件【配置】
  • 基于 Rainbond 的 Pipeline(流水线)插件
  • ASGARD:单细胞导向的药物发现
  • js-DOM03-事件
  • 天梯赛题目练习L1-007--L1-009
  • 来吧!接受Kotlin 协程--线程池的7个灵魂拷问
  • Dynamic Movement Primitives (DMP) 学习
  • 2023王道考研数据结构笔记第五章——树
  • setState函数是异步的还是同步的?
  • vue3+ts:约定式提交(git husky + gitHooks)
  • TSP 问题求解的最好方法 LKH
  • RocketMQ5.1控制台的安装与启动
  • 【java基础】类型擦除、桥方法、泛型代码和虚拟机
  • 十家公司有九家问过的软件测试面试题,最后一题我猜你肯定不会
  • C++核心知识(三)—— 静态成员(变量、函数、const成员)、面向对象模型(this指针、常函数、常对象)、友元、数组类、单例模式
  • RocketMQ【3】Rocketmq集群部署(多master多slave)异步复制
  • 魏玛早春 木心
  • 关于Scipy的概念和使用方法及实战
  • 第二章Linux操作语法1
  • linux内核调度问题分析