Python: 每日一题之特殊时间
创始人
2024-02-24 21:17:57
0

问题描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

2022 年 2 月 22 日 22: 20 是一个很有意义的时间, 年份为 2022 , 由 3 个 2 和 1 个 0 组成, 如果将月和日写成 4 位, 为 0222 , 也是由 3 个 2 和 1 个 0 组 成, 如果将时间中的时和分写成 4 位, 还是由 3 个 2 和 1 个 0 组成。

小张对这样的时间很感兴趣, 他还找到了其它类似的例子, 比如 111 年 10 月 11 日 01: 11,2202 年 2 月 22 日 22: 02等。

请问, 总共有多少个时间是这种年份写成 4 位、月日写成 4 位、时间写成 4 位后由 3 个一种数字和 1 个另一种数字组成。注意 1111 年 11 月 11 日 11: 1111:11 不算,因为它里面没有两种数字。

分析: 

根据题意分析得:在相同的数字中我们只能取 1 和 2 ,不可能出现 0 月,0 时

       年      月       日        时  分
范围0 --- 99991--12       0--310--23     0--59

我们把数据分为三组,可见月份对于数据的约束性最强

月日中可能出现的数据:0111,0222,3月至9月无,1011,11月1日、10日至19日、21日,1211,1222

对于任意一种年份都是存在的,我们先不用管年,先判断月日、时分中出现 3 个1 或 2的情况,我们找到所有是月份日期及时间后,只需其中的三个一样的数字和一个不同的数字全排列,就字符串中所有字符的所有排列,最后的结果乘以 4 即可得到最终结果(乘以四是加上年的)

def panduan(n):if n.count('1')==3 or n.count('2')==3:return Truereturn False
day=[]                # 月 日
for m in range(1,13):for d in range(1,31):s="%02d%02d" %(m,d) #格式化补 0s1=sorted(s)if panduan(s):day.append(s1)
hour=[]               # 时间:小时和分钟
for h in range(0,24):for m in range(0,60):s="%02d%02d" %(h,m)s1=sorted(s)if panduan(s):hour.append(s1)
sum = 0
for j in day: #遍历月日for k in hour: #遍历时分if j==k:sum+=1
print(sum*4)

注意:

  1. 年 月 日 时 分 中只有两种数字
  2. 日期要合法

相关内容

热门资讯

再次提醒:这项政策有变,广大灵... 缴费标准 自2026年1月起,按照职工基本医疗保险省级统筹统一筹资标准,灵活就业人员以不低于全省上年...
海量财经|上海威仕保安服务有限... 海报新闻记者报道 近日,上海市公安局官网行政处罚公示信息显示,上海威仕保安服务有限公司作为保安从业单...
扎哈罗娃再批日本:不负责任的政... 俄罗斯外交部发言人扎哈罗娃在18日举行的外交部例行记者会上说,俄方始终关注日方加速重新军国主义化的危...
天风证券融资偿还7488.52... 雷达财经雷助吧出品 文|周慧 编|深海 东财Choice金融数据显示,12月19日,天风证券融资买入...
价更高!四川成渝重启收购荆宜公... 深圳商报·读创客户端记者 梁佳彤 12月19日晚间,四川成渝(601107)发布公告称,公司全资子公...
夫妻起诉离婚,均拒绝抚养孤独症... 12月19日,从河源市中级人民法院获悉,广东河源连平的黄某某与肖某某系夫妻关系,双方育有一儿一女,其...
国家药监局召开新一届法律顾问座... 人民财讯12月20日电,12月20日,国家药监局举行法律顾问聘任仪式,为新一届法律顾问颁发聘书,并围...
欧洲刑警组织最新设想:2035... IT之家 12 月 20 日消息,当地时间 12 月 19 日,据外媒 The Verge 报道,欧...
海南封关,税收政策有哪些变化? 12月18日,海南正式实施全岛封关。全岛封关运作是海南自贸港建设的标志性工程,是进一步扩大开放的重要...