首页 > 试题广场 >

时钟

[编程题]时钟
  • 热度指数:12031 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
注意:本题允许使用C/C++/Java/python进行解答,其他编程语言提交均视作无效处理。

W有一个电子时钟用于显示时间,显示的格式为HH:MM:SSHHMMSS分别表示时,分,秒。其中时的范围为[‘00’,‘01’…‘23’],分的范围为[‘00’,‘01’…‘59’],秒的范围为[‘00’,‘01’…‘59’]

但是有一天小W发现钟表似乎坏了,显示了一个不可能存在的时间“98:23:00”,小W希望改变最少的数字,使得电子时钟显示的时间为一个真实存在的时间,譬如“98:23:00”通过修改第一个’9’’1’,即可成为一个真实存在的时间“18:23:00”。修改的方法可能有很多,小W想知道,在满足改变最少的数字的前提下,符合条件的字典序最小的时间是多少。其中字典序比较为用“HHMMSS”的6位字符串进行比较。


输入描述:
每个输入数据包含多个测试点。每个测试点后有一个空行。 第一行为测试点的个数T(T<=100)。 每个测试点包含1行,为一个字符串”HH:MM:SS”,表示钟表显示的时间。


输出描述:
对于每个测试点,输出一行。如果钟表显示的时间为真实存在的时间,则不做改动输出该时间,否则输出一个新的”HH:MM:SS”,表示修改最少的数字情况下,字典序最小的真实存在的时间。
示例1

输入

2
19:90:23
23:59:59

输出

19:00:23
23:59:59
头像 菜鸡别说话
发表于 2019-08-06 20:08:28
try:     while True:         #python 字符串为只读类型,借助helper     & 展开全文
头像 miss_阿拉蕾
发表于 2020-08-09 11:40:36
import java.util.*; public class Main { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); 展开全文
头像 牛客题解官
发表于 2020-06-05 15:57:49
题解 题目难度:中等难度 知识点:字符串、数字、字典序 解释:字典序是指从前到后比较两个字符串的大小的方法。首先比较第一个字符,如果不同则第一个字符较小的字符串更小,如果相同则继续比较第2个字符......如此继续,来比较整个字符串的大小。 方法(一) 只要判断时分秒位是否大于23、59、59,如果 展开全文
头像 bao_hu_yuan_zhang
发表于 2024-02-27 10:04:56
#include <iostream> using namespace std; int main() { int i=0; int n=0; cin>>n; for(i=0;i<n;i++) { string 展开全文
头像 callmexss
发表于 2019-07-26 15:33:08
把时间当成字符串来处理,分析每一个位置字符串可能出现的情况。 每一个字符串的格式都是完全相同的,从左到右依次分析: 记字符串的初始位置为 0。那么判断一个时间是否合法,需要考虑的位置只有第 0、1、3 和 6 位。例如:case = ['1', '9', ':', '0', '0', ':', '2 展开全文
头像 bandiaoz
发表于 2024-12-20 15:59:39
解题思路 这是一个时钟显示修复问题,需要将不合法的时间修改为合法时间 对于每个时间: 如果小时超过23,取个位数 如果分钟超过59,取个位数 如果秒数超过59,取个位数 修改后的时间需要保持格式:HH:MM:SS,不足两位需要补0 代码 cpp java python # 展开全文