通过在python中重用给定时间的相同数字来查找最近时间的程序
假设我们有一个“hh:mm”格式的24小时字符串,我们必须找到可以通过重用给定数字形成的下一个最接近的时间。我们可以根据需要多次重复使用给定字符串中的数字。
因此,如果输入类似于s="03:15",那么输出将是03:30,作为重复给定数字的最近时间03:30。
为了解决这个问题,我们将按照以下步骤操作:
使用:=具有两位数小时和两位数分钟值的列表
可能:=一组新的
定义一个函数backtrack()。这将采取路径
如果路径的大小与4相同,则
(路径[前两位数字]连接“:”连接路径[后两位数字])并将其插入到可能中。
返回
对于使用中的每个p,执行
回溯(路径+p)
如果(路径大小与0相同且p>“2”)为假且(路径与“2”相同且p>“3”)为假且(路径大小与2相同且p>“5”")为假,则
从main方法执行以下操作:
backtrack(blankstring)
可能:=来自可能的新列表
对列表进行排序
对于范围0到可能的大小-2的i,执行
返回可能[i+1]
如果可能[i]与s相同,则
返回可能[0]
让我们看下面的实现来更好地理解:
示例
class Solution:
def solve(self, s):
use = [s[0], s[1], s[3], s[4]]
possible = set()
def backtrack(path):
nonlocal possible, use
if len(path) == 4:
possible.add(path[:2] + ":" + path[2:])
return
for p in use:
if (not (len(path) == 0 and p > "2") and not (path == "2" and p > "3") and not (len(path) == 2 and p > "5")):
backtrack(path + p)
backtrack("")
possible = list(possible)
possible.sort()
for i in range(len(possible) - 1):
if possible[i] == s:
return possible[i + 1]
return possible[0]
ob = Solution()
s = "03:15"
print(ob.solve(s))输入
"03:15"输出结果
03:30
热门推荐
10 横幅家庭生日祝福语简短
11 小派妈妈生日祝福语简短
12 老人掉牙祝福语简短语
13 嫂子生日英语祝福语简短
14 婆婆高寿祝福语大全简短
15 城堡文案简短婚礼祝福语
16 对儿童未来祝福语简短
17 简短有力的考生祝福语
18 下雪宝宝生日祝福语简短