设计软件网站推荐上海aso优化公司
描述
ranko 的手表坏了,正常应该显示 xx:xx 的形式(4 个数字),比如下午 1 点半应该显示 13:30 ,但现在经常会有一些数字有概率无法显示。
ranko 在 �1t1 时刻看了下时间,过了一段时间在 �2t2 时刻看了下时间。她想知道, �1t1 和 �2t2 这两个时刻之间相距的时间的最大值和最小值是多少?
保证 �1t1 在 �2t2 之前(且 �1t1 和 �2t2 不等)。�1t1和 �2t2在同一天的 00:00 到 23:59 之间。
输入描述:
两行输入两个时间,为 xx:xx 的形式。其中 �x 为数字或者字符 '?' ,问号代表这个数字没有显示。
保证输入是合法的。
输出描述:
一行输出两个整数,分别代表 �1t1 和 �2t2 相距时间的最小值和最大值(单位分钟)。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;public class Main{public static void main(String[] args) throws IOException {BufferedReader br=new BufferedReader(new InputStreamReader(System.in));char[] arr= br.readLine().toCharArray();char[] arr2=br.readLine().toCharArray();List<Integer> list=new ArrayList<>();List<Integer> list2=new ArrayList<>();int h,m;for (int i = 0; i < 24 * 60; i++) {h=i/60;m=i%60;if((arr[0]=='?'||arr[0]-'0'==h/10)&&(arr[1]=='?'||arr[1]-'0'==h%10)&&(arr[3]=='?'||arr[3]-'0'==m/10)&&(arr[4]=='?'||arr[4]-'0'==m%10))list.add(i);if((arr2[0]=='?'||arr2[0]-'0'==h/10)&&(arr2[1]=='?'||arr2[1]-'0'==h%10)&&(arr2[3]=='?'||arr2[3]-'0'==m/10)&&(arr2[4]=='?'||arr2[4]-'0'==m%10))list2.add(i);}int min=24*60;int max=0;for(int t1:list)for(int t2:list2)if(t1<t2){max=Math.max(max,t2-t1);min=Math.min(min,t2-t1);}System.out.println(min+" "+max);}
}