需要一種算法以DD/MM HH:MM格式僅使用數字0-9一次查找最早的日期:SS。實際的答案是:26/03 17:48:59使用DD/MM格式的數字0-9僅查找一次最早的日期:MM:SS
2
A
回答
3
最簡單的方法 - 生成[0 ... 9]的所有排列,並檢查它們是否是有效的日期。
10! = 3 628 800
如果你想提高效率,回溯會有幫助。在這種情況下,這只是一個簡單的約束滿足問題,有效日期的數量遠遠少於排列的數量。此外,還可以考慮他們最低的一個月,然後一天最低次序等
例如
01不起作用,因爲當時的第一個數字(10S小時)需要爲0或1 02不起作用,因爲時間的第一個數字現在必須是1,而日期在2月只能是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
1
這是一個constraint satisfaction problem。您可能需要先使用日期格式MM/DD HH:MM:SS,然後再轉換您的答案。在這種格式下,字典上最小的有效日期字符串將成爲您所尋求的答案,所以如果系統地搜索,您找到的第一個有效日期就是解決方案。
基本上,您的搜索空間有12 x 31 x 24 x 60 x 60的大部分有效日期。所以,你的約束包括:
month < 13
day < 32
hour < 24
minutes < 60
seconds < 60
occurrence(date, i) == 1 for each i = 0 to 9
然後,您可以使用backtracking search algorithm通過搜索空間系統的進行。
相關問題
- 1. 查找最早日期 - PHP
- 2. 僅查詢最早可能日期的數字值
- 3. 查找日期早於7日後的日期的記錄。使用日期時間格式
- 4. 查找一系列JavaScript日期中最早的一個
- 5. Mongodb/JS:找到最小(最早)日期
- 6. SQL:來自一組日期字段的最早日期
- 7. 如何查找最高(最新)和最低(最早)日期[R]
- 8. Pandas.DataFrame - 查找可用值的最早日期
- 9. 使用SQL從表中查找指定記錄的最早和最後日期
- 10. 使用DateTimeFormatter設置「早期」日期的格式化時間戳
- 11. 「2016-09-07T13:00:00.000Z」找不到日期格式
- 12. 如何從數據庫中找到最早的日期和最新日期
- 13. 用於在列中查找第二個最早日期的Excel公式
- 14. 選擇最早的日期
- 15. 得到最早的日期
- 16. 使用早期的DAX查找值
- 17. SQL日期格式[h]:mm:ss像Excel一樣,超過24小時
- 18. 查找特定事件發生的最早日期
- 19. 如何查找組中最早的日期
- 20. 在foreach循環中查找最早的日期
- 21. MS Excel:查找混合內容行中的最早日期
- 22. Excel公式根據日期查找最近的更大數字
- 23. JavaScript:檢查日期A最早/最晚比日期早3倍B
- 24. 如何獲取我輸入的每一行中最早的日期和最早的日期之間的天數
- 25. 如何查詢幾個可能空白的日期字段的最早日期?
- 26. 的SharePoint查找列 - 日期格式
- 27. 使用jQuery查找並重新格式化日期字符串
- 28. 查找最近的日期
- 29. 查找最新的日期
- 30. 使用HIVE查找表格中的最近日期
蠻力10!可能性在合理的時間內仍然可以計算。你甚至可以從最低字符的月份開始明智地做到這一點,並在你首次找到可行的解決方案時終止。 – amit
不,你不需要算法 - 你已經有了問題的答案。 –
我知道答案,但試圖用程序來計算它。 – devsathish