gpt4 book ai didi

algorithm - 以 DD/MM HH :MM:SS 格式仅使用一次数字 0-9 查找最早日期

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:38:28 25 4
gpt4 key购买 nike

需要一种算法,以 DD/MM HH:MM:SS 格式仅使用一次数字 0-9 来查找最早日期。实际答案是:26/03 17:48:59

最佳答案

最简单的方法 - 生成 [0...9] 的所有排列并检查它们是否是有效日期。

10 ! = 3 628 800

如果你想提高效率,回溯会有所帮助。在这种情况下,它只是一个简单的约束满足问题,有效日期的数量远远少于排列的数量。此外,您可以按最低月、最低日等顺序考虑它们。

例如

01 不起作用,因为时间的第一位数字(10s 小时)需要为 0 或 102 不起作用,因为现在时间的第一位必须是 1,而二月份的日期只能是 0,1,2。

等等。

FWIW - 只有 769 个有效日期

import datetime
import itertools

count = 1
for perm in itertools.permutations( range(10) ):

i = 0;
day = perm[i]+perm[i+1]*10
i+=2
month = perm[i]+perm[i+1]*10
i+=2
hour = perm[i]+perm[i+1]*10
i+=2
minute = perm[i]+perm[i+1]*10
i+=2
second = perm[i]+perm[i+1]*10
try:
print datetime.datetime( 2012, month, day, hour, minute, second)
count+=1
except:
pass

print count

关于algorithm - 以 DD/MM HH :MM:SS 格式仅使用一次数字 0-9 查找最早日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10504932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com