首页 > 试题广场 >

时钟

[编程题]时钟
  • 热度指数:11868 时间限制: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
python...
T=int(input())
for i in range(T):    #T组数据
    tmp=input()
    A=tmp.strip().split(':')
    HH,MM,SS=map(int, tmp.strip().split(':'))
    if 0<=HH<=23 and 0<=MM<=59 and 0<=SS<=59:       #合法输入
        print(tmp)
    else:                                           #非法输入
        H,M,S=str(A[0]),str(A[1]),str(A[2])
        if HH>23:                                   #小时不合格
            H='0'+A[0][1] 
        if MM>59:                                   #分钟不合格
            M='0'+A[1][1]
        if SS>59:                                   #秒不合格
            S='0'+A[2][1]
        ans=""
        ans+=H+':'+M+":"+S
        print(ans) 


发表于 2021-08-20 11:08:31 回复(0)
n=int(input())
for i in range(n):
    v=list(map(int,input().split(':')))
    if v[0]>23:
        v[0]=v[0]%10
    if v[0]<10:
        a='0'+str(v[0])
    else:
            a=str(v[0])
    if v[1]>59:
        v[1]=v[1]%10
    if v[1]<10:
        b='0'+str(v[1])
    else:
        b=str(v[1])
    if v[2]>59:
        v[2]=v[2]%10
    if v[2]<10:
        c='0'+str(v[2])
    else:
        c=str(v[2])
    print(a+':'+b+':'+c)

发表于 2020-05-25 14:49:47 回复(0)
t = int(input())
for i in range(t):
    a,b,c = input().split(':')
    if a>'23':
        a = '0'+str(int(a)%10)
    if b>'59':
        b = '0'+str(int(b)%10)
    if c>'59':
        c = '0'+str(int(c)%10)   
    print(a+':'+b+':'+c) 
发表于 2020-04-11 17:49:35 回复(0)
t = int(input())
h = [i for i in range(24)]
ms = [i for i in range(60)]
for _ in range(t):
    hh,mm,ss = map(int,input().split(':'))
    if hh not in h:
        hh = hh % 10
    if mm not in ms:
        mm = mm % 10
    if ss not in ms:
        ss = ss % 10
    print('%02d:%02d:%02d'%(hh,mm,ss))

发表于 2019-08-19 20:16:31 回复(0)
""""
最小改动
"""

if __name__ == "__main__":
    n = int(input().strip())
    for _ in range(n):
        HH, MM, SS = map(int, input().strip().split(':'))
        if HH >= 24:
            HH %= 10
        if MM >= 60:
            MM %= 10
        if SS >= 60:
            SS %= 10
        print("{0:02d}:{1:02d}:{2:02d}".format(HH, MM, SS))

发表于 2019-07-12 14:24:09 回复(2)