一、题目描述
警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如“HH:MM” 表示的时刻。根据警察和线人的约定,为了隐蔽,该时间是修改过的,解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。每个出现数字都可以被无限次使用。
二、输入描述
形如HH:MM的字符串,表示原始输入
三、输出描述
形如HH:MM的字符串,表示推理出来的犯罪时间。
补充说明
- 可以保证线人给定的字符串一定是合法的。例如,“01:35”和“11:08”是合法的,“1:35”和“11:8”是不合法的
- 最近的时刻有可能在第二天
四、解题思路
我们需要解密一个时间,找到由当前出现过的数字构造的下一个距离当前时间最近的时刻。每个出现的数字可以被无限次使用。
- 提取可用数字:从输入的时间字符串中提取所有可用的数字。
- 生成所有可能的时间:利用这些可用数字生成所有可能的合法时间。
- 找到最近的时间:比较生成的时间与输入的时间,找到距离最近的时间。
五、Java算法源码
public clas