Spotify Best Before计划。我究竟做错了什么?

时间:2012-04-16 16:24:37

标签: python puzzle spotify

我正在尝试回答Spotify问题Best Before,我的代码可以正常运行我能想到的每个测试用例。但是,根据他们的服务器,我错了。

任何人都可以告诉我我的代码出错了吗?

这是我的代码:

from itertools import permutations
import datetime
import fileinput

def checkdate(d,m,y):
    """Gets possible values for day, month and year 
        and generates valid permutations of dates"""
    b = permutations([d,m,y])
    for p in b:
        try:
            yield datetime.date(p[0], p[1], p[2])
        except ValueError:
            yield None

def validvalue(a):
    return a > 0 and a <= 2999

c = raw_input()
d,m,y = c.split('/')
d,m,y = int(d), int(m), int(y)

if validvalue(d) and validvalue(m) and validvalue(y):
    valid = [x for x in checkdate(d,m,y) if x is not None]
    if valid:
        print "2" + str(min(valid))[1:]
    else:
        print "%s is illegal" % c
else:
    print "%s is illegal" % c

1 个答案:

答案 0 :(得分:3)

从问题描述:

  

2000可以给出为“2000”,“00”或“0”

您的代码不接受000作为有效年份。