MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

Python解密犯罪时间(python 解密)

2025-03-25 13:46 huorong 精选文章 2 ℃ 0 评论
import itertools

def next_closest_time(time: str) -> str:
    # 将时间字符串按 ":" 分割,分别得到小时和分钟
    hour, minute = time.split(":")
    digits = list(hour + minute)  # 获取所有数字字符
    current_time_in_minutes = int(hour) * 60 + int(minute)  # 当前时间转化为分钟
    
    # 生成所有数字的排列
    possible_times = set()  # 用set去重,避免重复的排列
    
    for perm in itertools.product(digits, repeat=4):  # 生成四位数字的排列
        perm_hour = int(''.join(perm[:2]))  # 前两位为小时
        perm_minute = int(''.join(perm[2:]))  # 后两位为分钟
        
        if perm_hour < 24 and perm_minute < 60:
            # 如果小时和分钟都在合法范围内
            possible_times.add((perm_hour, perm_minute))
    
    # 找到距离当前时间最近的时间
    closest_time = None
    min_diff = float('inf')
    
    for perm_hour, perm_minute in possible_times:
        # 计算时间差
        time_in_minutes = perm_hour * 60 + perm_minute
        diff = time_in_minutes - current_time_in_minutes
        
        # 如果时间差为负值,意味着这是第二天的时间
        if diff <= 0:
            diff += 24 * 60
        
        if diff < min_diff:
            min_diff = diff
            closest_time = (perm_hour, perm_minute)
    
    # 返回结果格式化成 "HH:MM" 格式
    return f"{closest_time[0]:02}:{closest_time[1]:02}"

# 测试用例
time = input("请输入当前时间(HH:MM):")
print(next_closest_time(time))


Tags:difftime

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言