输入样例:

20110101
20111231

输出样例:

1

解题思路:

找两个日期中间合法的回文数,一种直接的想法是:枚举这两个日期中间的所有日期,但在枚举时,需要考虑给出的两个日期是否在同一年,不仅需要将年份之间的日期枚举,还要将给出的那两个年份日期也要枚举,代码很冗长。

可以先找出所有可能年份的回文数,题目给出年份是四位整数,只要求出每个数字的回文数,通过判断这个回文数是否为合法的日期并且在给定的范围内求解。

Java代码:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();int m = scan.nextInt();scan.close();int ans = 0;for(int i = 1000; i <= 9999; i++) {int j = reverseNum(i);//1234 -> 4321int ij = 10000 * i + j;//拼凑成同一个数 if(ij > m || ij < n) continue;//比较该回文数是否在给定的范围内if(isValid(i, j)) ans++;}System.out.println(ans);}public static int reverseNum(int n) { //找回文串的“另一半” 6789 -> 9876int m = 0;//翻转后的数while(n > 0) {m = m * 10 + n % 10;n /= 10;}return m;}public static boolean isValid(int y, int n) {//年, 翻装后的数int m = n / 100, d = n % 100;//得到m:月 n:日if(m == 0 || m >= 13) return false;//判断月份是否合法int day = getDay(y, m);//求出月份对应的合法的天数if(d == 0 || d > day)return false;//return true;}public static int getDay(int y, int m) {//通过年和月求天数int []m1 = new int[]{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int []m2 = new int[]{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};if(y % 400 == 0 || y % 4 == 0 && y % 100 != 0) return m2[m];else return m1[m];}
}

466. 回文日期 Java题解 (模拟)相关推荐

  1. 蓝桥杯 回文日期(Java)

    解题思路 1.首先要满足回文的形式,即ABCDDCBA,对于回文的判断用数组会方便许多. 2.ABABBABA型:此处也可以使用数组判断是否是回文型. 3.要满足日期的格式. 暴力求解思路:预先存储好 ...

  2. 【题解】【蓝桥杯】回文日期

    题目链接 回文日期 题目描述 解题思路 首先就是日期判断,注意这个地方是日期,而不是这之间的所有数据 例如44444444这种虽说是回文串,但是并不是日期,所以需要排除 判断回文串其实不用打表,因为真 ...

  3. 蓝桥杯(Java) 回文日期

    题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日.因为如果将这个日期按 "yyyymmdd" 的格式写成一个 8 位数是 202002 ...

  4. 洛谷 题解 P2010 【回文日期】

    因为有8个字符,所以可得出每一年只有一个回文日期. 因此只要判断每一年就行了. 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这 ...

  5. 输出指定要求的回文日期与字符串拼接

    知识点:字符串拼接 (1)字符串直接用+拼接 演示直接用+连接两个字符串 这样会有三个内存单元来存放字符串,浪费内存空间,建议采用StringBuffer(线程安全)或者StringBuilder(线 ...

  6. NOIP 普及组 2016 回文日期

    传送门 https://www.cnblogs.com/violet-acmer/p/9859003.html 题解: 思路1: 相关变量解释: year1,month1,day1 : date1对应 ...

  7. 牛客题霸 [ 最长回文子串] C++题解/答案

    牛客题霸 [ 最长回文子串] C++题解/答案 题目描述 对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度. 给定字符串A以及它的长度n,请返回最长回文子串的长度. 题解: 两个方法: ...

  8. Python案例:输出指定要求的回文日期

    文章目录 一.提出任务 二.完成任务 (一)编写程序,实现功能 (二)运行程序,查看结果 一.提出任务 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日.因为如果将 ...

  9. Python案例:输出公元后到目前为止全部回文日期

    文章目录 一.回文日期 二.提出任务 三.完成任务 (一)涉及知识点 1.time模块 2.datetime模块 3.timedelta模块 (二)实现步骤 1.编写源代码 2.运行程序,查看结果 3 ...

最新文章

  1. 22张深度学习精炼图笔记总结
  2. 重庆交通大学2019年计算机系收分,重庆交通大学2019年考研复试分数线已公布
  3. 批量探测工具fpingping常用命令集合大学霸IT达人
  4. Duilib开发环境搭建
  5. php文件锁解锁是删除对应的文件_软件 | 文件解锁强制删除工具 Wise Force Deleter v1.49...
  6. 【Egret】Wing3发布移动APP功能,打包APK流程以及会遇到的问题
  7. (ssh整合web导出excel)在ssh框架中使用poi正确导出具有比较高级固定格式的excel 整体过程,查询导出前后台下载...
  8. IEEE 第二届大数据、人工智能与物联网工程国际会议 (IEEE-ICBAIE 2021)
  9. BerkeleyDB环境API
  10. 用DOSBox运行老游戏
  11. Git学习————Eclipse工程中Git图标
  12. 详细区分offsetX,clientX,pageX,screenX,layerX和X的区别
  13. linux 类似winscp_winscp 有没有Linux版的
  14. 照片如何转换成pdf?手机电脑都可以轻松转换
  15. Swift(一)语言介绍
  16. 面试现场:小伙伴美团一面的分享和分析[含答案]
  17. 复旦教授报告400多个安卓漏洞,历时16个月谷歌终于修复,此前曾立flag
  18. 一文搞懂前台,后台,中台,前端,后端,管理端,业务端,技术中台,业务中台,数据中台,物联网中台到底是什么?
  19. Asc、AscB、AscW
  20. 移动硬盘提示需要格式化怎么办?数据可以恢复吗

热门文章

  1. python中什么是不等长编码_2021学堂云计算机科学和Python编程导论(自主模式)期末答案...
  2. 程序员找如何才能找到传说中的女朋友?
  3. Theorem、Proposition、Lemma和Corollary等的解释与区别
  4. 香格里拉是如何策划成功的?
  5. 为什么用conda?
  6. MacBook safari一直闪退打不开,提示意外退出也重新启动不了
  7. 百度搜索结果页面的参数_反馈搜索结果用时(rsv_sug4)
  8. 单页网站快速创富秘籍
  9. oracle设置密码永不过期
  10. 南阳理工题目---218Dinner