When it is required to find the valid time which can be obtained by replacing unknown digits, a method is defined that checks to find the unknown/hidden digit, and then converts it into a different value depending on the value present in the index.
Example
Below is a demonstration of the same
def find_latest_time(my_time):
my_time = list(my_time)
for i in range(len(my_time)):
if my_time[i] == "?":
if i == 0: my_time[i] = "2" if my_time[i+1] in "?0123" else "1"
elif i == 1: my_time[i] = "3" if my_time[0] == "2" else "9"
elif i == 3: my_time[i] = "5"
else: my_time[i] = "9"
print("".join(my_time))
my_str = '0?:?3'
print("The time is :")
print(my_str)
print("The latest valid time is : ")
find_latest_time(my_str)Output
The time is : 0?:?3 The latest valid time is : 09:53
Explanation
A method named ‘find_latest_time’ is defined that takes a time as a parameter.
It is converted to a list.
It is iterated over and checked to see for the hidden/unknown time values.
If the value of the iterator is 0 or 1 or 3, it is replaced with a specific value.
Outside the method, a string is defined, and is displayed on the console.
The method is called by passing this value.
The output is displayed on the console.