G
N
I
D
A
O
L

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

在字符串 time 中,被字符  ?  替换掉的数位是 未知的 ,被替换的数字可能是 0 到 9 中的任何一个。

请你返回一个整数 answer ,将每一个 ?  都用 0 到 9 中一个数字替换后,可以得到的有效时间的数目。

题目链接:https://leetcode.cn/problems/number-of-valid-clock-times/

# 解题思路

分【小时】和【分钟】讨论,二者乘积就是答案

# 提交结果

image.png

# 代码

a
class Solution {
    public int countTime(String time) {
        int cnt = 1;
        char h1 = time.charAt(0);
        char h2 = time.charAt(1);
        char m1 = time.charAt(3);
        char m2 = time.charAt(4);
        if (h1 == '?' && h2 == '?') {
            cnt = 24;
        } else if (h1 == '?') {
            cnt = h2 > '3' ? 2 : 3;
        } else if (h2 == '?'){
            cnt = h1 > '1' ? 4 : 10;
        }
        if (m1 == '?') cnt *= 6;
        if (m2 == '?') cnt *= 10;
        return cnt;
    }
}
更新于 阅读次数

😉觉得写的还不错,请我喝杯咖啡吧😁

独步凌波 微信支付

微信支付

独步凌波 支付宝

支付宝