You are given a string of length 5 called time, representing the current time on a digital clock in the format "hh:mm". The earliest possible time is "00:00" and the latest possible time is "23:59".
In the string time, the digits represented by the ? symbol are unknown , and must be replaced with a digit from 0 to 9.
Return an integeranswer, the number of valid clock times that can be created by replacing every?_ with a digit from _0to9.
Input: time ="?5:00"Output: 2Explanation: We can replace the ?with either a 0 or 1, producing "05:00" or "15:00". Note that we cannot replace it with a 2, since the time "25:00"is invalid. In total, we have two choices.
Input: time ="??:??"Output: 1440Explanation: There are 24 possible choices for the hours, and 60 possible choices for the minutes. In total, we have 24*60=1440 choices.
Since the number of possible times is small (24 hours × 60 minutes = 1440), we can try all possible hour and minute values, check if they match the pattern, and count the valid ones.
classSolution {
public:int countTime(string time) {
int ans =0;
for (int h =0; h <24; ++h) {
for (int m =0; m <60; ++m) {
char buf[6];
sprintf(buf, "%02d:%02d", h, m);
bool ok = true;
for (int i =0; i <5; ++i) {
if (time[i] !='?'&& time[i] != buf[i]) ok = false;
}
if (ok) ++ans;
}
}
return ans;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
funccountTime(timestring) int {
ans:=0forh:=0; h < 24; h++ {
form:=0; m < 60; m++ {
t:=fmt.Sprintf("%02d:%02d", h, m)
ok:=truefori:=0; i < 5; i++ {
iftime[i] !='?'&&time[i] !=t[i] {
ok = false }
}
ifok {
ans++ }
}
}
returnans}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
classSolution {
publicintcountTime(String time) {
int ans = 0;
for (int h = 0; h < 24; h++) {
for (int m = 0; m < 60; m++) {
String t = String.format("%02d:%02d", h, m);
boolean ok =true;
for (int i = 0; i < 5; i++) {
if (time.charAt(i) !='?'&& time.charAt(i) != t.charAt(i)) ok =false;
}
if (ok) ans++;
}
}
return ans;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
classSolution {
funcountTime(time: String): Int {
var ans = 0for (h in0..23) {
for (m in0..59) {
val t = "%02d:%02d".format(h, m)
var ok = truefor (i in0..4) {
if (time[i] !='?'&& time[i] != t[i]) ok = false }
if (ok) ans++ }
}
return ans
}
}
1
2
3
4
5
6
7
8
9
classSolution:
defcountTime(self, time: str) -> int:
ans =0for h in range(24):
for m in range(60):
t =f"{h:02d}:{m:02d}"if all(tc =='?'or tc == sc for tc, sc in zip(time, t)):
ans +=1return ans
1
2
3
4
5
6
7
8
9
10
11
12
13
14
impl Solution {
pubfncount_time(time: String) -> i32 {
letmut ans =0;
for h in0..24 {
for m in0..60 {
let t =format!("{:02}:{:02}", h, m);
if time.chars().zip(t.chars()).all(|(a,b)| a =='?'|| a == b) {
ans +=1;
}
}
}
ans
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
classSolution {
countTime(time: string):number {
letans=0;
for (leth=0; h<24; h++) {
for (letm=0; m<60; m++) {
constt=`${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}`;
letok=true;
for (leti=0; i<5; i++) {
if (time[i] !=='?'&&time[i] !==t[i]) ok=false;
}
if (ok) ans++;
}
}
returnans;
}
}