Wednesday, 27 Oct 2021

# 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 and S 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 is equal to ‘_’ and S is either ‘_’ or is less than 4, then assign ‘2‘ to S. Otherwise, assign ‘1’ to S.
If the character S is equal to ‘_’ and S is ‘2’, then assign ‘3’ to S. Otherwise, assign ‘9‘ to S.
If the character S is equal to ‘_’, then assign ‘5’ to S.
If the character S is equal to ‘_’, then assign ‘9‘ to S.
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 == ‘_’) {

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