题目:给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。
有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。
替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。
这个题我做的效率感觉不是很高,因为有for循环,感觉有点拉了,看别人其他人的解答,是直接就用if语句就解决了,那个效率就非常的可观了,这道题就是在此做个记录
class Solution { public: string maximumTime(string time) { //第0个字符取值范围0-2 //第1个字符取值范围0-9 并且当第一个字符是2时,取值变为0-3 //第3个字符取值范围0-5 //第4个字符取值范围0-9 for(int i = 0;i<5;i++) { switch(time[i]) { case '?': if(i == 0 && (time[i+1] == '?' || time[i+1] < '4')) { time[i] = '2'; break; } else if(i == 0) { time[i] = '1'; break; } else if(i == 1 && time[i-1] != '2') { time[i] = '9'; break; } else if(i == 1 && time[i-1] == '2') { time[i] = '3'; break; } else if(i == 3) { time[i] = '5'; break; } else if(i == 4) { time[i] = '9'; break; } default: break; } } return time; } };