首页 > 其他分享 >日期问题 (20分)

日期问题 (20分)

时间:2023-05-30 16:38:15浏览次数:51  
标签:02 03 20 31 问题 日期 str ans


小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非 常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期 与其对应。

比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。

给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?
输入格式:

一个日期,格式是"AA/BB/CC"。 (0 <= A, B, C <= 9)
输出格式:

输出若干个不相同的日期,每个日期一行,格式是"yyyy-MM-dd"。多个日期按从早到晚排列。
输入样例:

在这里给出一组输入。例如:

02/03/04

输出样例:

在这里给出相应的输出。例如:

2002-03-04
2004-02-03
2004-03-02
//
// Created by TIGA_HUANG on 2020/10/6.
//

#include <iostream>
#include <sstream>
#include <set>

using namespace std;

int mm[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

string int_string(int x) {
    string str;
    stringstream ss;
    ss << x;
    ss >> str;
    if (str.length() < 2)
        str = '0' + str;
    return str;
}

string check(int y, int m, int d) {
    if (y < 0 || y >= 100)
        return "";
    if (y >= 60 && y < 100)
        y += 1900;
    else
        y += 2000;
    if (m <= 0 || m > 12)
        return "";
    if (m == 2) {
        if ((y % 4 == 0 && y % 100) || y % 400 == 0) {
            if (d > 29 || d <= 0)
                return "";
        } else {
            if (d > 28 || d <= 0)
                return "";
        }
    } else {
        if (d > mm[m - 1] || d <= 0)
            return "";
    }
    return int_string(y) + '-' + int_string(m) + '-' + int_string(d);
}

int main() {
    int y, m, d;
    scanf("%d/%d/%d", &y, &m, &d);
    string ans;
    set<string> s;
    ans = check(y, m, d);
    if (!ans.empty())
        s.insert(ans);
    ans = check(d, y, m);
    if (!ans.empty())
        s.insert(ans);
    ans = check(d, m, y);
    if (!ans.empty())
        s.insert(ans);
    for (set<string>::iterator it = s.begin(); it != s.end(); it++) {
        cout << *it << '\n';
    }
    return 0;
}


标签:02,03,20,31,问题,日期,str,ans
From: https://blog.51cto.com/u_16144724/6380328

相关文章

  • 畅通工程之最低成本建设问题 (30分)
    某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了有可能建设成快速路的若干条道路的成本,求畅通......
  • 解决ES磁盘空间占用过高&fluentd日志积压严重问题
    背景:有场景会出现因没有关注到,导致es-data的磁盘使用占用超过85%,es集群的默认配置是当集群中的某个节点磁盘达到使用率为85%的时候,就不会在该节点进行创建副本,当磁盘使用率达到90%的时候,尝试将该节点的副本重分配到其他节点。当磁盘使用率达到95%的时候,当前节点的所有索引......
  • 哥尼斯堡的“七桥问题” (25分)
    哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示。可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(LeonhardEuler,1707—1783)最终解决了这个问题,并由此创立了拓扑学。这个问题如今可以描述为判断欧拉回路是否存在的问题。欧拉回路是指不令......
  • THUPC2023 游记
    五月二十七号上午,我和国家队一行人出发前往北京。说起来这是我第五次来北京了,但上一次来还是在几乎六年前。那时同行的伙伴在我刚上初中时成为了我的好朋友,高中也被分到了一个班,但现在已经没有交流了。我努力回忆着自己对北京的所有印象,但除了很小的时候父亲出差带我到北京玩,其它......
  • 解决es存储的日志显示不完整问题
    背景:通过服务的实时日志和从kibana中查询到的不一致,实时日志会显示的更多。解决方法:修改fluentdconfigmap按照下图的方式fluentd配置中filter下,如图下图位置增加以下配置`#Concatenatemulti-linelogs(>=16KB)<filterkubernetes.**>@typeconcat......
  • springboot-解决项目编译后resources下文件生成乱码问题
    SpringBoot项目下resources文件项目编译之后resources下文件会生成乱码,是说明maven打包的时候出现问题缺少一个插件<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId>......
  • 谷歌浏览器在用户与Document无交互时无法播放声音问题 - 记录
    谷歌禁止声音播放处理方式1、设置google浏览器,点击地址前面的图标,选择网站设置,找到声音,设置允许,需要用户配合设置2、使用window.AudioContext,需要自己写代码 接口参考地址:https://developer.mozilla.org/zh-CN/docs/Web/API/AudioContext3、使用组件,如:soundman......
  • 2023CVPR_Low-Light Image Enhancement via Structure Modeling and Guidance(代码暂
    大佬链接:CVPR2023低光照图像增强论文阅读基于结构先验的图像增强-知乎(zhihu.com)一motivation1.现有低光照图像增强方法忽视了在低光照区域结构信息建模对增强的作用(ignoretheexplicitmodelingofstructuraldetailsindarkareas)从而导致增强效果不理想,比如细节模......
  • Python excejs 执行js文件的时候 报编码错误的问题
    问题执行js的时候报图中的编码错误,直接执行js文件时能正常编译,在网上未找到关于这个问题的文章头疼了好久最终在各位大佬的帮助下解决了问题,便记录了下来:解决办法:一、修改报错文件subprocess.py中的encoding编码:encoding=None--->encoding='utf-8'二、在引包的时......
  • 2023-05-30 taro如何切换到其他已发布的小程序
    taro可以把一套小程序代码发布成多个小程序,那么要如何维护这些小程序呢,咱也不懂,咱也是刚开始学习怎么操作。开始前先感谢chatGpt这个工具,它真的很棒,几乎没有什么是它不会的,我的很多一些问题都是问chatGpt,就比如这篇文章都是chatGpt给我的。要将Taro项目切换到已经发布的小程序,需......