蓝桥 13期 java c组 特殊日期

【问题描述】

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:11 不算,因为它里面没有

两种数字。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

java 复制代码
package a.a;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

public class LanQiao13B {
    static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
    static void fun(int i, int j, List<String> list) {
        list.add(i + "" + i + "" + i + "" + j);
        list.add(i + "" + i + "" + j + "" + i);
        list.add(i + "" + j + "" + i + "" + i);
        list.add(j + "" + i + "" + i + "" + i);
    }

    static void fun1(List<String> list, List<String> resultList) {
        // 因为是由 年 月日 时分 三个组成,所以直接做了3个for循环用来拼接
        for (int m = 0; m < list.size(); m++) {
            for (int n = 0; n < list.size(); n++) {
                for (int p = 0; p < list.size(); p++) {
                    // 这里借用SimpleDateFormat来判断是否是正常时间
                    String date = list.get(m) + list.get(n) + list.get(p);
                    try {
                        sdf.parse(date);
                    } catch (ParseException e) {
                        // 遇到非正常时间直接跨过,
                        continue;
                    }
                    // 正确的时间给添加到list中,用来统计
                    resultList.add(date);

                }
            }
        }
    }

    public static void main(String[] args) {

        List<String> resultList = new ArrayList<>();
        sdf.setLenient(false);
        for (int i = 0; i < 10; i++) {
            for (int j = i + 1; j < 10; j++) {
                List<String> list = new ArrayList<>();
                fun(i, j, list);
                fun1(list, resultList);

                list = new ArrayList<>();
                fun(j, i, list);
                fun1(list, resultList);
            }
        }
        System.out.println(resultList.size());
    }
}
相关推荐
胖纸不争14 小时前
EnergyStarZ:让 Windows 后台进程给前台让路的能效管理器(v1.2 发布)
windows·性能优化·c#·win32·ef core
2501_9159090616 小时前
Windows 上用 VS Code 调试 iPhone 真机 App,KXBuild 断点、崩溃定位实操
ide·windows·vscode·ios·iphone·个人开发·敏捷流程
情 九17 小时前
MCP 开发环境搭建:Mac 与 Windows 跑通 Python 服务和 stdio 客户端
windows·python·macos·mcp
懂点Tech1 天前
ctfshow misc28:GIF 高度修改解题与脚本实现
开发语言·windows·python
云梦谭1 天前
让 Linux 主动连接 Windows:配置 Windows 11 SSH 服务端
linux·windows·ssh
奇树谦1 天前
Windows CMD 下 mc 运维指南:SeaweedFS 安装验收与 MinIO 数据迁移
运维·windows
keren21 天前
SceneDock:Windows 场景化工作台——一键启动工作链,还能被 AI Agent 调用(CLI / MCP)
windows·开发工具·效率工具·mcp
成旭先生1 天前
车辆、能源与地理数据 API 实战:把定价、油价、行政区划串成一条链路
人工智能·windows·能源·api集成·油价查询·车辆定价·地址清洗
seahahacsdn1 天前
Windows获取SYSTEM用户权限的方法应用-计划任务
windows
上海云盾-小余1 天前
七层 CC 攻击检测难点:如何区分真实用户与攻击请求
网络·人工智能·windows·tcp/ip·udp