最初由@Tlink发布(并删除),这很可能是受此StackOverflow问题启发的。
由于很遗憾,它被删除了,因为通常来说这是一个很好的挑战,所以我认为我应该使用适当的格式和规则重新发布它。(我已经尝试联系@Tlink并获得他/她的发布许可,但是他不再回应,这就是为什么我决定现在将其发布。)
输入:六位数。
输出:以24小时格式(00:00:00
到23:59:59
)的第一个或最后一个有效时间。(您可以选择是输出第一个还是最后一个有效时间。)
例:
输入为时1,8,3,2,6,4
,可以创建以下时间:
12:36:48 12:38:46 12:46:38 12:48:36
13:26:48 13:28:46 13:46:28 13:48:26
14:26:38 14:28:36 14:36:28 14:38:26
16:23:48 16:24:38 16:28:34 16:28:43
16:32:48 16:34:28 16:38:24 16:38:42
16:42:38 16:43:28 16:48:23 16:48:32
18:23:46 18:24:36 18:26:34 18:26:43
18:32:46 18:34:26 18:36:24 18:36:42
18:42:36 18:43:26 18:46:23 18:46:32
21:36:48 21:38:46 21:46:38 21:48:36
23:16:48 23:48:16
因此,我们将输出12:36:48
或23:48:16
在这种情况下分别输出第一个/最后一个。
挑战规则:
- 说明您在答案中输出的是第一个还是最后一个有效时间。
- I / O是灵活的。输入可以是六个分开的整数;包含六个数字的字符串;整数列表/数组;单个(可能是八进制)数字;输出可以是正确排序的数字列表/数组;例如 格式为
HH:mm:ss
/HHmmss
/ 的字符串HH mm ss
;用换行符分隔的每个数字;等你的电话。 - 您可以按任意顺序输入数字,因此它们可以从最低到最高进行排序,反之亦然。
- 如果不能使用给定的数字(即
2,5,5,5,5,5
)创建有效时间,请以任何所需的方式弄清楚。可以返回null
/false
;"Not possible"
; 因错误而崩溃;等等(您不能输出无效时间,如55:55:52
,或其他有效时间,如00:00:00
。)请说明其如何处理无法创建有效时间的输入。 - 您不允许输出所有可能的有效时间。仅最早/最新的应该被输出/返回。
24
数小时(即24:00:00
)或60
分钟/秒(即00:60:60
)无效。范围是[00-23]
小时,[00-59]
分钟和秒。
一般规则:
- 这是代码高尔夫球,因此最短答案以字节为单位。
不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 - 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法和返回类型的完整程序。你的来电。
- 默认漏洞是禁止的。
- 如果可能,请为您的代码添加一个带有测试的链接。
- 另外,如有必要,请添加说明。
测试用例:
Input: Earliest output: Latest output:
1,2,3,4,6,8 12:36:48 23:48:16
2,5,5,5,5,5 None possible None possible
0,0,0,1,1,1 00:01:11 11:10:00
1,1,2,2,3,3 11:22:33 23:32:11
9,9,9,9,9,9 None possible None possible
2,3,5,5,9,9 23:59:59 23:59:59
1,2,3,4,5,6 12:34:56 23:56:41
0,0,0,0,0,0 00:00:00 00:00:00
1,5,5,8,8,8 18:58:58 18:58:58
1,5,5,5,8,8 15:58:58 18:58:55
1,1,1,8,8,8 18:18:18 18:18:18
06:08:60
鉴于在这一分钟内有一个a秒,这是否有效?
60
分钟和秒无效。范围是[00-23]
,[00-59]
和[00-59]
。将在挑战中阐明这一点。
23:48:16
该示例不是有效的输出吗?