---
tags: data_structure_python
---
# Maximum Time <img src="https://img.shields.io/badge/-easy-brightgreen">
You are given a string that represents time in the format `hh:mm`. Some of the digits are blank (represented by `?`). Fill in `?` such that the time represented by this string is the maximum possible. Maximum time: `23:59`, minimum time: `00:00`. You can assume that input string is always valid.
**Example 1:**
```
Input: "?4:5?"
Output: "14:59"
```
**Example 2:**
```
Input: "23:5?"
Output: "23:59"
```
**Example 3:**
```
Input: "2?:22"
Output: "23:22"
```
**Example 4:**
```
Input: "0?:??"
Output: "09:59"
```
**Example 5:**
```
Input: "??:??"
Output: "23:59"
```
# Solution
```python=
def maximum_time(s):
"""
ab:cd
- a:
. 1 -> b = 9.
. 2 -> b = 3.
- b:
. [0-3] -> a = 2.
. [4-9] -> a = 1.
- c:
. [0-5] -> d = 9.
- d:
. [0-9] -> c = 5.
"""
if s == "??:??":
return "23:59"
else:
maxTime = ""
# a.
if s[0] != "?":
maxTime += s[0]
elif s[1] in "456789":
maxTime += "1"
else:
maxTime += "2"
# b.
if s[1] != "?":
maxTime += s[1]
elif s[0] in "01":
maxTime += "9"
else:
maxTime += "3"
# :.
maxTime += ":"
# c.
maxTime += "5" if s[3] == "?" else s[3]
# d.
maxTime += "9" if s[4] == "?" else s[4]
return maxTime
```