時間限制:1秒
空間限制:65536K
注意:本題允許使用C/C++/Java/python進行解答,其他編程語言提交均視作無效處理。
小W有一個電子時鐘用於顯示時間,顯示的格式爲HH:MM:SS,HH,MM,SS分別表示時,分,秒。其中時的範圍爲[‘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
輸出例子1:
19:00:23 23:59:59
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n=input.nextInt();
while(n>0) {
String str=input.next();
String[] arr=str.split(":");
int hh=Integer.valueOf(arr[0]).intValue();
if(hh<=23) {
if(hh==0) {
System.out.print("00:");
}else if(hh<10){
System.out.print("0"+hh+":");
}else {
System.out.print(hh+":");
}
}else {
int tmp=hh%10;
hh=tmp;
System.out.print("0"+hh+":");
}
int mm=Integer.valueOf(arr[1]).intValue();
if(mm<60) {
if(mm==0) {
System.out.print("00:");
}else if(mm<10){
System.out.print("0"+mm+":");
}else {
System.out.print(mm+":");
}
}else {
int tmp=mm%10;
System.out.print("0"+tmp+":");
}
int ss=Integer.valueOf(arr[2]).intValue();
if(ss<60) {
if(ss==0) {
System.out.println("00");
}else if(ss<10){
System.out.println("0"+ss);
}else {
System.out.println(ss);
}
}else{
int tmp=ss%10;
System.out.println("0"+tmp);
}
n--;
}
}
}