1736. 替换隐藏数字得到的最晚时间
思路
根据不同的位的特点判断:
- 第一位:如果下一位是 0-3 或者是 ?,那么最大值为 2,否则为 1
 - 第二位:如果前一位是 2,那么最大值为 3,否则为 9
 - 第三位:直接替换
 - 第四位:直接换
 
代码
class Solution {
public:
    string maximumTime(string time) {
        if (time[0] == '?') {
            if (time[1] >= '0' && time[1] <= '3' || time[1] == '?') {
                time[0] = '2';
            } else time[0] = '1';
        }
        if (time[1] == '?') {
            if (time[0] == '1' || time[0] == '0') {
                time[1] = '9';
            } else time[1] = '3';
        }
        if (time[3] == '?') {
            time[3] = '5';
        }
        if (time[4] == '?') {
            time[4] = '9';
        }
        return time;
    }
};