2019網易遊戲(互娛)遊戲研發編程題--時鐘

時間限制: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--;
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章