Maximize time by replacing ‘_’ in a given 24 Hour format time

Maximize time by replacing ‘_’ in a given 24 Hour format time
Given a string S representing a time in 24 hours format, with ‘_’ placed at positions of some digits, the task is to find the maximum time possible by replacing the characters ‘_’ with any digit.
Examples:

Input: S = “0_:4_”Output: 09:39Explanation: Replacing the characters S[1] and S[4] with ‘9’ modifies the string to “09:49”, which is the maximum time possible.
Input: S = “__:__”Output: 23:59

Approach: The given problem can be solved by greedily selecting the digits for each ‘_’ present in the string. Follow the steps below to solve the problem: If the character S[0] is equal to ‘_’ and S[1] is either ‘_’ or is less than 4, then assign ‘2‘ to S[0]. Otherwise, assign ‘1’ to S[0].
If the character S[1] is equal to ‘_’ and S[0] is ‘2’, then assign ‘3’ to S[1]. Otherwise, assign ‘9‘ to S[1].
If the character S[3] is equal to ‘_’, then assign ‘5’ to S[3].
If the character S[4] is equal to ‘_’, then assign ‘9‘ to S[4].
After completing the above steps, print the modified string S.
Below is the implementation of the above approach:

C++

  
#include
using namespace std;
  

string maximumTime(string s)
{
    
    if (s[0] == ‘_’) {
  
        
        
        if ((s[1] == ‘_’)
            || (s[1] >= ‘0’
                && s[1] < '4')) {                             s[0] = '2';         }                     else {             s[0] = '1';         }     }             if (s[1] == '_') {                     if (s[0] == '2') {             s[1] = '3';         }                     else {             s[1] = '9';         }     }             if (s[3] == '_') {         s[3] = '5';     }             if (s[4] == '_') {         s[4] = '9';     }             return s; }    int main() {     string S = "0_:4_";     cout