class Solution {
public boolean check(String str , String time){
for(int i = 0 ; i < time.length(); i++){
if( !(str.charAt(i) == time.charAt(i)|| time.charAt(i)=='?')) return false;
}
return true;
}
public String maximumTime(String time) {
/*
我们的思路如何?
我们从尾到头枚举所有的情况
找出符合要求的最大的值
小时从23 开始递减
分钟从59 开始递减
找出最符合要求匹配的时间点
第一 ?匹配继续
第二:两个字符相等的字符继续比较符合
*/
for(int i = 23; i >=0 ;i--){
for(int j = 59 ; j >= 0 ; j--){
String str = "";
if(i<10)str+="0";
str+=i;
str+=":";
if(j < 10) str += 0 ;
str+=j;
if(check(str,time)) return str;
}
}
return "";
}
}
leetcode周赛225 --得到匹配的时间
最新推荐文章于 2024-01-21 22:06:04 发布