【华为机试】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)
相关推荐
楚疏笃36 分钟前
纯Python 实现 Word 文档转换 Markdown
python·word
谅望者1 小时前
数据分析笔记08:Python编程基础-数据类型与变量
数据库·笔记·python·数据分析·概率论
mortimer1 小时前
【实战复盘】 PySide6 + PyTorch 偶发性“假死”?由多线程转多进程
pytorch·python·pyqt
清静诗意1 小时前
Django REST Framework(DRF)RESTful 最完整版实战教程
python·django·restful·drf
小曹要微笑1 小时前
STM32各系列时钟树详解
c语言·stm32·单片机·嵌入式硬件·算法
studytosky1 小时前
深度学习理论与实战:Pytorch基础入门
人工智能·pytorch·python·深度学习·机器学习
长不大的蜡笔小新2 小时前
手写数字识别:从零搭建神经网络
人工智能·python·tensorflow
前进的李工2 小时前
LeetCode hot100:094 二叉树的中序遍历:从递归到迭代的完整指南
python·算法·leetcode·链表·二叉树
爱编程的喵喵3 小时前
《华为数据之道》发行五周年暨《数据空间探索与实践》新书发布会召开,共探AI时代数据治理新路径
人工智能·华为
ins_lizhiming3 小时前
在华为910B GPU服务器上运行DeepSeek-R1-0528模型
人工智能·pytorch·python·华为