【华为机试】2023年真题B卷(python)-解密犯罪时间

一、题目

题目描述:

警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 "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

四、要求

时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

五、解题思路

  1. 将输入的时间字符串转换为整数表示的小时和分钟。
  2. 将小时和分钟的每一位数字添加到一个集合中,表示可以使用的数字。
  3. 从当前分钟开始,每分钟增加1,如果增加后的分钟数的每一位数字都在集合中,那么这就是下一个可能的犯罪时间。
  4. 如果分钟数增加到60,那么小时数增加1,分钟数归0。如果小时数增加到24,那么小时数归0。
  5. 将找到的小时和分钟转换为字符串格式并返回。

六、参考代码

python 复制代码
# -*- coding: utf-8 -*-
'''
@File    :   2023-B-解密犯罪时间.py
@Time    :   2023/12/30 00:25:01
@Author  :   mgc 
@Version :   1.0
@Desc    :   None
'''

# import os
# import re
# import sys
# import copy
# import math
# import queue
# import functools
# from queue import Queue
# from collections import Counter, defaultdict

def next_time(time):
    # 将输入的时间字符串转换为整数表示的小时和分钟
    hour, minute = map(int, time.split(':'))
    # 将小时和分钟的每一位数字添加到一个集合中
    digits = set(time.replace(':', ''))
    while True:
        # 每分钟增加1
        minute += 1
        # 如果分钟数增加到60,那么小时数增加1,分钟数归0
        if minute == 60:
            minute = 0
            hour += 1
            # 如果小时数增加到24,那么小时数归0
            if hour == 24:
                hour = 0
        # 将小时和分钟转换为字符串格式
        time = f'{hour:02d}:{minute:02d}'
        # 如果增加后的小时和分钟的每一位数字都在集合中,那么这就是下一个可能的犯罪时间
        if set(time.replace(':', '')) <= digits:
            return time

time = input()
result = next_time(time)
print(result)
相关推荐
南极星10055 分钟前
2026电赛E题有感
python·opencv·电赛
看浪的路人7 分钟前
第3讲:代码补全引擎
开发语言·windows·python
tudousisi22214 分钟前
P4447 [AHOI2018初中组] 分组 题解复盘
算法
SNAKEpc1213816 分钟前
OpenGL(十一)- 变换管线
c语言·c++·算法·矩阵·图形渲染
OH_TPC24 分钟前
【鸿蒙优选三方库】@ohos/grpc:在 HarmonyOS 上像调本地方法一样调远程服务
华为·harmonyos·鸿蒙
想会飞的蒲公英27 分钟前
PyTorch 学习率实战:从零理解衰减策略与调度器
人工智能·pytorch·python·深度学习·机器学习
达子66632 分钟前
第30章_综合案例:HarmonyOs开发图解之 俄罗斯方块游戏
游戏·华为·harmonyos
云端漫步198739 分钟前
HarmonyOS NEXT AI 应用开发总结:30 篇之旅
人工智能·华为·harmonyos
布值倒区什么name41 分钟前
python文件IO学习
python
丁引1 小时前
《数据清洗的艺术:如何用20行核心逻辑优雅地删除无标签图片》
前端·数据库·python