将 6 个数字分别放入 HH:MM:SS 的 6 个位置,要求 00 ≤ HH ≤ 23
、00 ≤ MM,SS ≤ 59
,每个数字只能使用一次。
由于长度固定为 6,直接对 6 个数字做 全排列(至多 6! = 720
种),检验是否构成合法时间;在所有合法时间中取 最大(按从左到右字典序或总秒数最大等价)。
相关算法:排列枚举 / 回溯(或库函数的全排列)。
实现要点
(a,b,c,d,e,f)
,构造 H=10a+b,M=10c+d,S=10e+f
;H*3600+M*60+S
比较),记录其字符串 HH:MM:SS
;里面有 6 个整数,求这个数组能够表示的最大 24 进制的时间是多少,输出这个时间,无法表示输出 invalid .
输入为一个整数数组,数组内有六个整数。
输入整数数组长度为 6 ,不需要考虑其它长度,元素值为 0 或者正整数,6 个数字每个数字只能使用一次。
输出为一个 24 进制格式的时间,或者字符串 "invalid" 。
输出时间格式为 xx:xx:xx 格式。
输入
[0,2,3,0,5,6]
输出
23:56:00
输入
[9,9,9,9,9,9]
输出
invalid