[枚举][字符串]leetcode1729:替换隐藏数字得到的最晚时间(easy)

编程入门 行业动态 更新时间:2024-10-25 19:23:57

[枚举][<a href=https://www.elefans.com/category/jswz/34/1771434.html style=字符串]leetcode1729:替换隐藏数字得到的最晚时间(easy)"/>

[枚举][字符串]leetcode1729:替换隐藏数字得到的最晚时间(easy)

题目:


题解:

  • 思路1:直接用 if else 模拟几个情况就行了
  • 思路2:暴力枚举,24*60种情况,从大时间到小时间来枚举,然后判断枚举的字符串是否和题目给的字符串是否匹配就行了。

代码如下:

class Solution {
public:// 题解1:纯模拟题string maximumTime_1(string s) {// 处理s[0]是否为'?'的情况if(s[0]=='?'){if(s[1]=='?')s[0]='2',s[1]='3';else if(s[1]<='3')s[0]='2';else s[0]='1';}// 处理s[0]!='?',s[1]是否为'?'的情况else if(s[1]=='?'){if(s[0]=='2')s[1]='3';else s[1]='9';}// 后面的min随意改就行了if(s[3]=='?')s[3]='5';if(s[4]=='?')s[4]='9';return s;}// 题解2:暴力枚举,即本题就是一个字符串匹配题string maximumTime(string s){for(int i=23;i>=0;i--)for(int j=59;j>=0;j--){char str[20];sprintf(str,"%02d:%02d",i,j);if(check(s,str))return str;}return "";}// 判断两个字符串是否匹配bool check(string s,char str[]){for(int i=0;i<5;++i)if(s[i]==str[i]||s[i]=='?')continue;else return false;return true;}
};

更多推荐

[枚举][字符串]leetcode1729:替换隐藏数字得到的最晚时间(easy)

本文发布于:2023-07-28 18:55:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1280270.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   最晚   数字   时间   easy

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!