当前位置: 首页 > news >正文

2023-05-09 LeetCode每日一题(有效时间的数目)

2023-05-09每日一题

一、题目编号

2437. 有效时间的数目

二、题目链接

点击跳转到题目位置

三、题目描述

给你一个长度为 5 的字符串 time ,表示一个电子时钟当前的时间,格式为 “hh:mm” 。最早 可能的时间是 “00:00” ,最晚 可能的时间是 “23:59” 。

在字符串 time 中,被字符 ? 替换掉的数位是 未知的 ,被替换的数字可能是 0 到 9 中的任何一个。

请你返回一个整数 answer ,将每一个 ? 都用 0 到 9 中一个数字替换后,可以得到的有效时间的数目。

四、解题代码

class Solution {
public:int countTime(string time) {int minute = 0;int hour = 0; int res = 0;if(time[3] == '?'){if(time[4] == '?'){minute = 60;} else{minute = 6; }} else{if(time[4] == '?'){minute += 10;} }if(time[0] == '?'){if(time[1] == '?'){hour = 24;} else if(time[1] >= '4'){hour = 2;} else{hour = 3;}} else{if(time[1] == '?'){if(time[0] <= '1'){hour = 10;} else{hour = 4;}} }if(minute == 0 && hour == 0){return 1;} else if(minute == 0 && hour != 0){return hour;} else if(minute != 0 && hour == 0){return minute;} else{return hour * minute;}return 0;}
};

五、解题思路

(1) 用hour来记录 ‘?’ 所能替换的小时有多少种可能性,用minute来记录 ‘?’ 所能替换的分钟有多少种可能性。这里面讨论的是包含‘?’所能得到的小时和分钟的可能性,如果hour和minute最终的值不为0,即字符串中不包含‘?’,其自身就是一种可能性,应当返回答案1而不是0。

(2) 先讨论分钟,分钟由M1M2来组成,先讨论M1,如果M1 是 ‘?’ 的话,此时M1可能的值为0-5 6种,如果M2 == ‘?’ 的话,那么总共可能性为60种。如果M2 非问号,则总共可能性为6种。如果M1不是 ‘?’ 的话,判断M2是否为‘?’,不是的话则总可能性为0种,如果是‘?’ 的话,则总可能性为10种,即0-9。

(3) 再讨论时钟,时钟由H1H2来组成,先讨论H1,如果H1是 ‘?’ 的话,此时H1可能的值为0-2 2种,如果M2 == ‘?’ 的话,那么总共可能性为24种。如果M2非问号,则总共可能性得根据M2来判断,如果M2大于等于4,则M1不能为2为两种,否则的话,M1可以为2,则总共有3种。如果H1不是 ‘?’ 的话,则判断H2是否是‘?’,是的话则总可能性需要根据H1来判断,判断方式与之前所述类似,主要是判断H1是否是等于2。如果H2不是‘?’ 则总的可能性为0种。

(4) 最后按照hour和minute的值来进行组合求值。注意的是,hour == 0且minute == 0,返回1,理由在(1) 中已经阐述。

http://www.lryc.cn/news/65756.html

相关文章:

  • 第三节课 Linux文件权限
  • 开发STC89C51系列单片机需要的单片机技术
  • 分布式键值存储是什么?(分布式键值存储大值)
  • 多线程(线程同步和互斥+线程安全+条件变量)
  • Flutter学习——开发Flutter需要的技能
  • SPSS如何进行因子分析和主成分分析之案例实训?
  • 图标字体与HTML转义字符:网页设计中的两个关键概念
  • Elasticsearch详解
  • 学习笔记(13)网络基础
  • LeertCode 134 加油站
  • python文件操作的基本流程
  • 1. 两数之和
  • 操作系统:06 进程通信
  • WRF模式
  • 2直接连接的网络与VLAN划分【实验】【计算机网络】
  • 【Linux0.11代码分析】04 之 head.s 启动流程
  • 自动化测试和selenium的使用
  • Ubuntu常用终端操作
  • Spring Security 6.x 系列【34】认证篇之前后端分离场景下的集成方案
  • Qt之QTextToSpeech 让你的应用程序说话
  • 为什么程序员喜欢用Linux?
  • leetcode 598. 范围求和 II
  • javaweb前置知识
  • 基于微信小程序的酒店预定管理系统设计与实现
  • 26. Service——深入学习
  • 【算法】Check If Word Is Valid After Substitutions 检查替换后的词是否有效
  • 基于jenkinsfile布置java工程
  • Spring JpaTransactionManager事务管理
  • 全国职业院校技能大赛网络建设与运维赛项赛题(七)
  • asp.net+sqlserver企业公司进销存管理系统