<p>You are given a string <code>time</code> in the form of <code> hh:mm</code>, where some of the digits in the string are hidden (represented by <code>?</code>).</p>

<p>The valid times are those inclusively between <code>00:00</code> and <code>23:59</code>.</p>

<p>Return <em>the latest valid time you can get from</em> <code>time</code><em> by replacing the hidden</em> <em>digits</em>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> time = &quot;2?:?0&quot;
<strong>Output:</strong> &quot;23:50&quot;
<strong>Explanation:</strong> The latest hour beginning with the digit &#39;2&#39; is 23 and the latest minute ending with the digit &#39;0&#39; is 50.
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> time = &quot;0?:3?&quot;
<strong>Output:</strong> &quot;09:39&quot;
</pre>

<p><strong class="example">Example 3:</strong></p>

<pre>
<strong>Input:</strong> time = &quot;1?:22&quot;
<strong>Output:</strong> &quot;19:22&quot;
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>time</code> is in the format <code>hh:mm</code>.</li>
	<li>It is guaranteed that you can produce a valid time from the given string.</li>
</ul>

class Solution:
    def maximumTime(self, time: str) -> str:
        new_time=''
        if time[0]=='?':
            if time[1] == '?' or int(time[1])<4:
                new_time+='2'
            else :
                new_time+='1'
        else:
            new_time+=time[0]
        if time[1]=='?' and ( new_time[0]=='1' or new_time[0] =='0'):
            new_time+='9'
        elif time[1]=='?' and new_time[0]=='2':
            new_time+='3'
        else:
            new_time+=time[1]
        new_time+=time[2]
        if time[3]=='?':
            new_time+='5'
        else:
            new_time+=time[3]
        if time[4] =='?':
            new_time+='9'
        else:
            new_time+=time[4]
        return new_time
16300