【LintCode 简单】1871. 最大时刻

本文介绍如何通过编程解决给定时间字符串中问号替换问题,以找到可能的最大时间,如2?:00转为23:00,???:??转为23:59。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 描述

给一个24小时制的时间(00:00-23:59),其中有一个或多个数字是问号。问号处可以用任何一个数字代替,问可以表示的最大时间是多少。


2. 样例

样例1:

输入: 
time = "2?:00"
输出: 
"23:00"

样例2:

输入: 
time = "??:??"
输出: 
"23:59"

3. 代码

对问题的多种情况进行考虑,使用了嵌套的判断语句

class Solution:
    """
    @param time: a string of Time
    @return: The MaximumMoment
    """
    def MaximumMoment(self, time):
        # Write your code here.
        newtime = list(time)
        if newtime[0] == '?' and newtime[1] == '?':
            newtime[0] = '2'
            newtime[1] = '3'
        elif newtime[0] == '?':
            if int(newtime[1]) <=3:
                newtime[0] = '2'
            else:
                newtime[0] = '1'
        elif newtime[1] == '?':
            if int(newtime[0])==2:
                newtime[1]='3'
            else:
                newtime[1] = '9'
        if newtime[3] == '?':
            newtime[3] = '5' 
        if newtime[4] == '?':
            newtime[4] = '9'  
        time = ''.join(newtime)          
        return time

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值