华为OD机试-- 解密犯罪时间

题目
警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 “HH:MM” 表示的时刻。
根据警察和线人的约定,为了隐蔽,该时间是修改过的,
解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。
每个出现数字都可以被无限次使用。
输入描述
形如HH:SS字符串,表示原始输入。
输出描述
形如HH:SS的字符串,表示推理处理的犯罪时间。
备注
1.可以保证现任给定的字符串一定是合法的。
例如,“01:35”和“11:08”是合法的,“1:35”和“11:8”是不合法的。
2.最近的时刻可能在第二天。
示例
20:12得到20:20
23:59得到22:22
12:58得到15:11
18:52得到18:55
23:52得到23:53
09:17得到09:19
07:08得到08:00
思路
1:先搞明白题目吧,这题目第一遍看还挺绕,就是只能用输入的四个数组组装成下一个最近的时间,且数字可以重复使用。
2:如果只有四个数字,可以重复使用,那么最多也就4^4种情况,我们分别算出各个组合的时间大小,转成分钟数之后,比较一下就行。
3:注意一些特殊情况,比如时间的各位置上的取值范围。
Java 实现:https://renjie.blog.csdn.net/article/details/130786390
Python实现:https://renjie.blog.csdn.net/article/details/130786398
C++ 实现:https://renjie.blog.csdn.net/article/details/127321926
JavaScript实现:https://renjie.blog.csdn.net/article/details/130786378
C实现:https://renjie.blog.csdn.net/article/details/131493136