给你一个长度为 5 的字符串 time ,表示一个电子时钟当前的时间,格式为 "hh:mm"
。最早 可能的时间是 "00:00"
,最晚 可能的时间是 "23:59"
。
在字符串 time 中,被字符 ?
替换掉的数位是 未知的 ,被替换的数字可能是 0 到 9 中的任何一个。
请你返回一个整数 answer ,将每一个 ?
都用 0 到 9 中一个数字替换后,可以得到的有效时间的数目。
题目链接:https://leetcode.cn/problems/number-of-valid-clock-times/
# 解题思路
分【小时】和【分钟】讨论,二者乘积就是答案
# 提交结果
# 代码
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; | |
} | |
} |