网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1118|回复: 0
打印 上一主题 下一主题

网易面试真题-时钟

[复制链接]

97

主题

98

帖子

447

积分

版主

Rank: 7Rank: 7Rank: 7

积分
447
跳转到指定楼层
楼主
发表于 2020-6-28 09:47:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目描述
注意:本题允许使用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
输出
19:00:23
23:59:59

实现代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) throws IOException{
        // TODO Auto-generated method stub
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        int num= Integer.parseInt(buf.readLine());
         
        ArrayList<String> originlist= new ArrayList<>();
        ArrayList<String> outlist=new ArrayList<>();
         
        for(int i=0;i<num;i++) {
            char[] tmp=buf.readLine().toCharArray();
            
            int flag=0;
            if(tmp[0]=='0' ||tmp[0]=='1') {
                flag=0;
            }else if(tmp[0]=='2'){
                flag=1;
            }else {
                tmp[0]='0';
            }
            
            if(flag==1) {
                if(tmp[1]=='0'||tmp[1]=='1'||tmp[1]=='2'||tmp[1]=='3') {
                 
                }else {
                    tmp[0]='0';
                }
            }
            
            if(tmp[3]=='0'||tmp[3]=='1'||tmp[3]=='2'||tmp[3]=='3'||tmp[3]=='4'||tmp[3]=='5') {
                 
            }else {
                tmp[3]='0';
            }
            
            if(tmp[6]=='0'||tmp[6]=='1'||tmp[6]=='2'||tmp[6]=='3'||tmp[6]=='4'||tmp[6]=='5') {
                 
            }else {
                tmp[6]='0';
            }
            
            outlist.add(String.valueOf(tmp));
        }
         
        for(int i=0;i<num;i++) {
            System.out.println(outlist.get(i));
        }
    }

}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-22 10:50 , Processed in 0.032705 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表