D


私信TA

用户名:ALS1111

访问量:19492

签 名:

等  级
排  名 51
经  验 10951
参赛次数 0
文章发表 132
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:

采用循环,数据较大。不建议。

直接构造回文日期,可以知道每年最多有一个回文日期。进行查找即可。



注意事项:

参考代码:

s = input().strip()  
y = int(s[:4])  
  
a = 0  
b = 0  
aflag = 0  
bflag = 0  
while True:  
    temp = str(y)[::-1]  
    m = int(temp[:2])  
    d = int(temp[2:4])  
  
    if 1<= m <= 12:  
        if m == 2:  
            if (y % 4 == 0 and y % 100 != 0) or (y % 400 == 0):  
                if 1<= d <=29:  
                    if not aflag:  
                        a = str(y)+temp  
                        if int(a) > int(s):  
                            aflag = 1  
                    if not bflag:  
                        if len(set(list(temp))) == 2 and temp[0] == temp[2] and temp[1] == temp[3]:  
                            b = str(y)+temp  
                            if int(b) > int(s):  
                                bflag = 1  
            else:  
                if 1 <= d <= 28:  
                    if not aflag:  
                        a = str(y)+temp  
                        if int(a) > int(s):  
                            aflag = 1  
                    if not bflag:  
                        if len(set(list(temp))) == 2 and temp[0] == temp[2] and temp[1] == temp[3]:  
                            b = str(y)+temp  
                            if int(b) > int(s):  
                                bflag = 1  
        elif m in (4,6,9,11):  
            if 1 <= d <= 30:  
                if not aflag:  
                    a = str(y)+temp  
                    if int(a) > int(s):  
                        aflag = 1  
                if not bflag:  
                    if len(set(list(temp))) == 2 and temp[0] == temp[2] and temp[1] == temp[3]:  
                        b = str(y)+temp  
                        if int(b) > int(s):  
                            bflag = 1  
        else:  
            if 1 <= d <= 31:  
                if not aflag:  
                    a = str(y)+temp  
                    if int(a) > int(s):  
                        aflag = 1  
                if not bflag:  
                    if len(set(list(temp))) == 2 and temp[0] == temp[2] and temp[1] == temp[3]:  
                        b = str(y)+temp  
                        if int(b) > int(s):  
                            bflag = 1  
    if aflag and bflag:  
        print(a)  
        print(b)  
        break  
    y = y + 1


 

0.0分

3 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区