-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path2437.有效时间的数目.java
87 lines (84 loc) · 2.31 KB
/
2437.有效时间的数目.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
* @lc app=leetcode.cn id=2437 lang=java
*
* [2437] 有效时间的数目
*
* https://leetcode.cn/problems/number-of-valid-clock-times/description/
*
* algorithms
* Easy (50.39%)
* Likes: 74
* Dislikes: 0
* Total Accepted: 25.9K
* Total Submissions: 51.5K
* Testcase Example: '"?5:00"'
*
* 给你一个长度为 5 的字符串 time ,表示一个电子时钟当前的时间,格式为 "hh:mm" 。最早 可能的时间是 "00:00" ,最晚 可能的时间是
* "23:59" 。
*
* 在字符串 time 中,被字符 ? 替换掉的数位是 未知的 ,被替换的数字可能是 0 到 9 中的任何一个。
*
* 请你返回一个整数 answer ,将每一个 ? 都用 0 到 9 中一个数字替换后,可以得到的有效时间的数目。
*
*
*
* 示例 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 种选择。
*
*
*
*
* 提示:
*
*
* time 是一个长度为 5 的有效字符串,格式为 "hh:mm" 。
* "00" <= hh <= "23"
* "00" <= mm <= "59"
* 字符串中有的数位是 '?' ,需要用 0 到 9 之间的数字替换。
*
*
*/
// @lc code=start
class Solution {
public int countTime(String time) {
int count = 1;
char a = time.charAt(0), b = time.charAt(1), c = time.charAt(3), d = time.charAt(4);
if (d == '?')
count *= 10;
if (c == '?')
count *= 6;
if (a == '?' && b == '?')
count *= 24;
else if (b == '?') {
if (a == '2')
count *= 4;
else
count *= 10;
} else if (a == '?') {
if (b <= '9' && b >= '4')
count *= 2;
else
count *= 3;
}
return count;
}
}
// @lc code=end