Leetcode.2437 有效时间的数目

题目链接

Leetcode.2437 有效时间的数目 Rating : 1427

题目描述

给你一个长度为 5 的字符串 t i m e time time ,表示一个电子时钟当前的时间,格式为 "hh:mm"最早 可能的时间是 "00:00",最晚 可能的时间是 "23:59"

在字符串 t i m e time time 中,被字符 ? 替换掉的数位是 未知的 ,被替换的数字可能是 09 中的任何一个。

请你返回一个整数 a n s w e r answer answer ,将每一个 ? 都用 09 中一个数字替换后,可以得到的有效时间的数目。

示例 1:

输入:time = “?5:00”
输出:2
解释:我们可以将 ? 替换成 0 或 1 ,得到 “05:00” 或者 “15:00” 。注意我们不能替换成 2 ,因为时间 “25:00” 是无效时间。所以我们有两个选择。

示例 2:

输入:time = “0?:0?”
输出:100
解释:两个 ? 都可以被 0 到 9 之间的任意数字替换,所以我们总共有 100 种选择。

示例 3:

输入:time = “??:??”
输出:1440
解释:小时总共有 24 种选择,分钟总共有 60 种选择。所以总共有 24 * 60 = 1440 种选择。

提示:
  • t i m e time time 是一个长度为 5 的有效字符串,格式为 "hh:mm"
  • "00" <= hh <= "23"
  • "00" <= mm <= "59"
  • 字符串中有的数位是 '?' ,需要用 09 之间的数字替换。

解法:分类讨论

  • s [ 0 ] = ′ ? ′ & & s [ 1 ] = ′ ? ′ s[0] = '?' \&\& s[1] = '?' s[0]=?&&s[1]=?,有 24 种选择;
    • s [ 0 ] = ′ ? ′ & & s [ 1 ] ≥ ′ 4 ′ s[0] = '?' \&\& s[1] \geq '4' s[0]=?&&s[1]4,有 2 种选择;
    • s [ 0 ] = ′ ? ′ & & s [ 1 ] < ′ 4 ′ s[0] = '?' \&\& s[1] < '4' s[0]=?&&s[1]<4,有 3 种选择;
    • s [ 0 ] = ′ 2 ′ & & s [ 1 ] = ′ ? ′ s[0] = '2' \&\& s[1] = '?' s[0]=2&&s[1]=?,有 4 种选择;
    • s [ 0 ] < ′ 2 ′ & & s [ 1 ] = ′ ? ′ s[0] < '2' \&\& s[1] = '?' s[0]<2&&s[1]=?,有 10 种选择;
  • s [ 3 ] = ′ ? ′ s[3] = '?' s[3]=? ,有 6 种选择;
  • s [ 4 ] = ′ ? ′ s[4] = '?' s[4]=? ,有 10 种选择;

时间复杂度: O ( 1 ) O(1) O(1)

C++代码:

class Solution {
public:
    int countTime(string s) {
        int ans = 1;

        if(s[0] == '?' && s[1] == '?') ans = 24;
        else if(s[0] == '?'){
            if(s[1] >= '4') ans = 2;
            else ans = 3;
        }
        else if(s[1] == '?'){
            if(s[0] < '2') ans = 10;
            else ans = 4;
        }

        if(s[3] == '?') ans *= 6;
        if(s[4] == '?') ans *= 10;

        return ans;
    }
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值