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.