Python - Find the latest valid time that can be obtained by replacing the unknown/hidden digits



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.


Advertisements