使用Python重新使用相同的数字来查找最近时间的程序
假设我们有一个“hh:mm”格式的24小时字符串,我们必须找到下一个最接近的时间,该时间可以通过重新使用给定数字来形成。我们可以任意多次重复使用给定字符串中的数字。
因此,如果输入为s =“03:15”,则输出将为03:30,即最接近重复给定数字的时间为03:30。
要解决这个问题,我们将遵循以下步骤:
- 使用:=具有两位数字的小时和两位数字的分钟值的列表
- 可能:=一个新集合
- 定义一个函数backtrack()。这将采用路径
- 如果路径的大小与4相同,则
- (路径[前两位数字]连接“:”连接路径[后两位数字])并将其插入possible。
- 返回
- 对于使用中的每个p,执行以下操作:
- 如果(路径大小与0相同且p>“2”)为假且(路径与“2”相同且p>“3”)为假且(路径大小与2相同且p>“5”)为假,则
- backtrack(path + p)
- 如果(路径大小与0相同且p>“2”)为假且(路径与“2”相同且p>“3”)为假且(路径大小与2相同且p>“5”)为假,则
- 从主要方法执行以下操作:
- backtrack(空字符串)
- 可能:=从possible的新列表
- 对可能的列表进行排序
- 对于范围为0到可能大小-2的i,执行以下操作:
- 如果possible[i]与s相同,则
- 返回possible[i + 1]
- 如果possible[i]与s相同,则
- 返回possible[0]
让我们看一下以下实现,以获得更好的理解: