who:关键词
date1(起始日期
date2(终止日期)
ans(回文日期天数)
what:关键联系
什么样的日期是回文日期
(1)首先是合法日期
(2)回文日期特点
例如,2015是一个合法日期,它的回文日期是:5102但是这个回文日期不合法的所以,20150426不是回文日期
思考:(1)日期和回文日期之间如何转化
(2)是否合法
解决方案1:date1—date2逐一枚举,求出每天的回文日期劣 势:枚举每天,时间会超出108,
低效枚举(如,2049年这一年无效回文日期,按照方法1也需要每天枚举)
how:算法分析
解决方案1:枚举每一天
date1–date2逐一枚举每天,
求出每天的回文日期,
判断该回文日期是否合法劣势:
枚举每天,时间会超出10⁸,why低效枚举(如,2049年这一年无效回文
日期,按照方法1也需要每天枚举
时间复杂度是:8位数枚举10,I
空间复杂度:
解决方案2枚举一年时间why
由一年合法日期,
再推导出回文具体是哪一年,
再合成回文日期,
再判断该回文日期是否符合题意
时间复杂度:O(12个月31天)=O(372)=0(1)
求解步骤
(1)先求什么
根据一年中每天:月份+日期,求出回文日期年和回文日期的日例如,0423 i=04月份j=23日
回文日期的年:3240 p=j%101000+j/10100+1%1010+/101回文日期的日
0423 q=j%101+j/1010+9%10100+l/101000
(2)接着求什么
将每天日期转换成它的8位回文日期pqPq=p10000+q;
(3)接着求什么
接着,判断该回文日期是否符合题意
(条件:date1≤qp≤date2))if(pq>=date1&&pgK=date2)符合题意,ans++
代码