zoukankan      html  css  js  c++  java
  • 1519. 时间魔法

    1519. 时间魔法

    中文English

    在霍格沃茨魔法学校里面,有一个简单的时间魔法,可以将当前的时间转换到最大的时间,但是只能修改几个固定的位置。最长时间是23:59,最短时间是00:00,表示时间的格式为hh:mm
    例如:现在是"2?:2?",那么可以转换的最大时间为"23:29"

    样例

    样例 1:

    输入: "?4:5?"
    输出: "14:59"
    样例解释: 返回最大的时间。
    

    样例 2:

    输入: "0?:??"
    输出: "09:59"
    样例解释: 返回最大的时间。
    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param newTime: new time
        @return: maximum time
        """
        '''
        大致思路:
        1.时具有特殊性
        如果首位是?的话,则进行看第二位是什么值,如果第二位是?,则返回23.如果第二位是大于3的话,则首位只能是为1.如果是小于3的话,首位为2
        如果第二位是?的话,则需要看首位是什么值,如果首位小于2,则返回9。如果首位为2,则返回3
        后面的分,直接返回:59即可
        '''
        def timeMagic(self,newTime):
            h,m = '',''
            if newTime[0] == '?':
                if newTime[1] == '?':
                    h = '23'
                elif newTime[1] > '3':
                    h = '1'+ newTime[1]
                elif  newTime[1] <= '3':
                    h = '2' + newTime[1]
            
            if newTime[1] == '?':
                if newTime[0] < '2':
                    h = newTime[0] + '9'
                elif newTime[0] == '2':
                    h = '23'
            if newTime[3] == '?':
                if newTime[4] == '?':
                    m = '59'
                else:
                    m = '5' + newTime[4]
    
            if newTime[4] == '?':
                if newTime[3] == '?':
                    m = '59'
                else:
                    m = newTime[3] + '9'
            if m == '':
                m = newTime[3:5]
            
            return newTime[:2] + ':' + m if h == '' else h + ':' + m
                    
  • 相关阅读:
    C++11多线程
    C++单例模式
    从五大结构体,带你掌握鸿蒙轻内核动态内存Dynamic Memory
    云小课 | 云硬盘不用了如何处理?
    Kafka 源码解析:Server 端的运行过程
    带你掌握4种Python 排序算法
    面试官问我:如何减少客户对交付成果的质疑
    如何基于MindSpore实现万亿级参数模型算法?
    Go 接口类型
    Go 结构体
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12735513.html
Copyright © 2011-2022 走看看