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

标签 algorithm date

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

最佳答案

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

10 ! = 3 628 800

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

例如

01 不起作用,因为时间的第一位数字(10s 小时)需要为 0 或 1 02 不起作用,因为现在时间的第一位必须是 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/

相关文章:

algorithm - 相邻位计数

python - 拓扑排序(卡恩算法)的麻烦

java - 如何在 Java/Android 的格式化字符串中显示本地化的日期单位?

javascript - 从 JS 日期对象获取 YYYYMMDD 格式的字符串?

algorithm - 将数字分配给两个 "containers"并最小化它们的和差

java - 这个反向单链表算法的复杂度?

php - MySQL 插入不适用于日期列

ios - NSDateFormatter "Month"3 个字母而不是完整的单词

sql - 无法从表格中获取正确的日期

javascript - 如何在javascript中找到11的幂或x是幂n?