leetcode 1736
时间:2021-07-26 16:42:09
收藏:0
阅读:0
这个题本来不打算写,既然某kerin告诉我他WA了,,,emmmm? dl 还能WA,新鲜事嘞
顺便昂,谢邀
WA了也不能不回消息吧(不过不是这个题)
鞭尸现场(雾
这个题一看就是不涉及任何复杂算法的简单题(当然简单题也不一定对)
算法应该叫"贪心"吧,不过是个枚举就是了。
如果说一个注意点就是,要注意string中每一位都是一个char类型,所以你比较数字的时候一定要- ‘0‘
思路在注释里
#include<iostream>
#include<vector>
#include <queue>
#include <algorithm>
using namespace std;
//还是要注意一点就是string中的每一位都是char类型,搞数字的时候要 -‘0‘
class Solution {
public:
char if_time1_digit(string time){//return the number time[0] should be
if(time[1]-‘0‘>3)
return ‘1‘;
else{
return ‘2‘;
}
}
char if_time0_digit(string time){//return the number time[1] should be
if(time[0]==‘2‘)
return ‘3‘;
else{
return ‘9‘;
}
}
string maximumTime(string time) {//00:00
//之前遇见过这个题,无数if的叠加罢了。
//也是某种意义上的贪心
//其实后两个数跟前面没有什么关系,直接搞就行
//前两个数彼此有制约
/*
* 第一个数如果是二,第二个数只能是1 2 3
* 第二个数如果超过3,第一个数只能是1
* 如果两个数都没有,那就23(你可别傻到两个都取彼此的最大,29?)
* 那就,枚举问号在哪里吧!
*/
//前两个
if (time[0] == ‘?‘ && time[1] == ‘?‘) {
time[0] = ‘2‘;
time[1] = ‘3‘;
} else if (time[0] == ‘?‘ && time[1] != ‘?‘){//不要再犯以前的错误啦!你time[0]和time[1]可能已经更改过了,不要用if让它再进来了
time[0]=if_time1_digit(time);
}else if(time[1] == ‘?‘ && time[0] != ‘?‘){
time[1]=if_time0_digit(time);
}
if(time[3]==‘?‘){
time[3]=‘5‘;
}
if(time[4]==‘?‘){
time[4]=‘9‘;
}
return time;
}
};
评论(0)