-->
当前位置:首页 > 题库 > 正文内容

编程题:日期识别3

Luz3年前 (2021-05-10)题库729
### 任务描述
```
倒霉的于龙最近总是和日期过不去,因为他叕一次面对一大堆日期数据。这一次的原因是那些日期书写的极其不规范,仔细辨别也根本认不清是哪一天,因为很多日期可以理解为多种情况。
以下每个日期中的三个数,年月日的位置是不确定的,所以导致有多种理解。例如:
2/3/1 可理解为0002-03-01或0003-02-01或0001-02-03等6种情况;
13+12+45 只可理解为0045-12-13一种情况;
12=3=13 可理解为0012-03-13或0002-12-13或0013-12-03或0013-03-12四种情况;
29,2,2019 怎么理解都不是合法日期;
35.36.37 怎么理解都不是合法日期;
11*31*30 可理解为0031-11-30一种情况;
11*31*11 可理解为0011-11-30一种情况;
5*5*5 可理解为0005-05-05一种情况;
5*6*6 可理解为0005-06-06、0006-06-05、0006-05-06三种情况;
13-13-5 可理解为0013-05-13一种情况;
5-5-13 可理解为0013-05-05、0005-05-13两种情况;

现在于龙要编程判断一下那些日期到底是否可以理解成合法日期,你们说他能编出来吗。

```
### 输入格式:
```
一行,以X-Y-Z形式表示的一个日期,其中X、Y、Z为不超过4位的正整数,“-”为一个分隔字符,可能为任何符号。
注意:这次测试数据不保证X、Y、Z各不相同。
```
### 输出格式:
```
若该日期可以理解为合法存在的日期,首先输出它可以被理解成的合法日期个数,然后按从后往前的顺序依次输出这些合法日期;
若该日期无法理解成合法日期,输出:Invalid Date!。
```
### 输入样例:
```in
2/3/1
```
### 输出样例:
```out
6
0003-02-01
0003-01-02
0002-03-01
0002-01-03
0001-03-02
0001-02-03
```
### 输入样例:
```in
13+12+45
```
### 输出样例:
```out
1
0045-12-13
```
### 输入样例:
```in
29,2,2019
```
### 输出样例:
```out
Invalid Date!
```
### 输入样例:
```in
35-36-37
```
### 输出样例:
```out
Invalid Date!
```

### 输入样例:
```in
11-30-31
```
### 输出样例:
```out
1
0031-11-30
```
### 输入样例:
```in
5-5-13
```
### 输出样例:
```out
2
0013-05-05
0005-05-13
```
### 输入样例:
```in
5-5-6
```
### 输出样例:
```out
3
0006-05-05
0005-06-05
0005-05-06
```
### 输入样例:
```in
4-2-28
```
### 输出样例:
```out
4
0028-04-02
0028-02-04
0004-02-28
0002-04-28
```
### 输入样例:
```in
5*5*5
```
### 输出样例:
```out
1
0005-05-05
```





答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。