2437. 有效时间的数目

news/2024/11/20 13:42:50/

2437.有效时间的数目

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

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

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

示例 1:
输入:time = “?5:00”
输出:2
解释:我们可以将 ? 替换成 0 或 1 ,得到 “05:00” 或者 “15:00” 。注意我们不能替换成 2 ,因为时间 “25:00” 是无效时间。所以我们有两个选择。

示例 2:
输入:time = “0?:0?”
输出:100
解释:两个 ? 都可以被 0 到 9 之间的任意数字替换,所以我们总共有 100 种选择。

方法一:暴力枚举

直接枚举从00∶00到23∶59的所有时间,然后判断每个时间是否有效,
满足要求则答案加一。

class Solution {public int countTime(String time) {int count=0;for (int i = 0; i <24 ; i++) {for (int j = 0; j <60 ; j++) {//转化为对应的时间格式String s=String.format("%02d:%02d",i,j);int cnt=1;for (int k = 0; k <5 ; k++) {//判断是否满足条件,满足则判断下一个字符//不满足,则cnt为0,直接判断下一个字符串if (s.charAt(k)!=time.charAt(k)&&time.charAt(k)!='?'){cnt=0;break;}}count+=cnt;}}return count;}
}

在这里插入图片描述

方法二:分开枚举

分开枚举小时和分钟,分别统计有多少个小时和分钟满足条件,然后将二者对应的值相乘,得到最终的答案。

class Solution {public int countTime(String time) {//小时的个数int num_h=f(time.substring(0,2),24);//分钟的个数int num_m=f(time.substring(3),60);return num_h*num_m;}private static int f(String s,int num){int cnt=0;for (int i = 0; i <num ; i++) {//判断小时或者分钟第一个和第二个字符是否满足条件if ((s.charAt(0)=='?'||(s.charAt(0)-'0'==i/10)) && (s.charAt(1)=='?'||(s.charAt(1)-'0'==i%10)))++cnt;}return cnt;}
}

在这里插入图片描述


http://www.ppmy.cn/news/66777.html

相关文章

数据库优化指南

数据库优化是提高数据库性能的一个重要方面&#xff0c;它可以使数据库的查询速度更快、响应更迅速、并发性能更好。在实际应用中&#xff0c;数据库优化是非常重要的&#xff0c;因为它可以提高系统的整体性能&#xff0c;避免系统出现瓶颈&#xff0c;从而保障系统的稳定性和…

Prometheus原理与二次开发

Prometheus的功能、架构、组件、配置 1 介绍 1.1 简介 Promethues是一套开源系统监控及报警框架&#xff0c;启发于Google的borgmon, 由SoundCoud员工于2012年创建&#xff0c;并于2015年正式发布,2016年正式加入Cloud Native Computing Fundation 1.2 监控目的 趋势分析&…

算法之路--快速排序算法

由于冒泡算法算法之路--冒泡算法&#xff08;算法之路--冒泡算法&#xff09;每轮都要进行从头到落位之前的每个元素的比较&#xff0c;在执行效率上需要提升&#xff0c;快速排序算法就是对冒泡算法的一种效率上的提升。 算法思路 快速排序是基于冒泡的改进&#xff0c;所以基…

Linux下安装MySQL 5.7

安装MySQL 5.7 1、通过命令下载 wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz 2、解压 tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql/ 3、简化 cd /usr/local mv mysql-5.7.36-linux-…

北邮22信通:电子电路实验:分享一个存放零散电阻的小方法

北邮22信通一枚~ 很高兴以一个新身份和大家见面&#xff01; 有关电子电路实验的新专栏即将开启&#xff0c;会尽量分享一些实验报告方面的文章&#xff0c;大家敬请期待~ 这篇文章想和大家分享困扰小编好久的问题的解决方法&#xff01;同时也就作为专栏开启的引子啦~ 事…

算法修炼之练气篇——练气十七层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

Windows 11 本地部署 Stable Diffusion web UI

Windows 11 本地部署 Stable Diffusion web UI 0. 什么是 Stable Diffusion1. 什么是 Stable Diffusion web UI2. Github 地址3. 安装 CUDA Toolkit 11.84. 安装 cuDNN v8.9.1 for CUDA 11.x5. 配置环境变量6. 安装 Python 3.10.67. 安装 Stable Diffusion web UI8. 启动 Stabl…

python类库详解

Python类库是开发者可以使用的众多工具之一&#xff0c;他们是由其他开发者编写、共享和维护的代码集合。借助这些代码库&#xff0c;我们可以省去大量的时间和精力&#xff0c;更专注于应用程序的实现。Python类库是Python语言被广泛使用的一个原因之一。 在本文中&#xff0…