题解 | ranko的手表
ranko的手表
https://www.nowcoder.com/practice/37275e85ae7c4453920eae6b9f7f45fc
#include<stdio.h> int main() { char t1[6]; char t2[6]; scanf("%s", t1); scanf("%s", t2); int a1[1500]; int a2[1500]; int num1=0,num2=0; for (int i = 0; i < 60 * 24; i++) { if ((t1[0] - '0' == i / 600 || t1[0] == '?') && (t1[1] - '0' == i / 60 % 10 || t1[1] == '?') && (t1[3] - '0' == i % 60 / 10 || t1[3] == '?') && (t1[4] - '0' == i % 60 % 10 || t1[4] == '?')) { a1[num1] = i; num1++; } if ((t2[0] - '0' == i / 600 || t2[0] == '?') && (t2[1] - '0' == i / 60 % 10 || t2[1] == '?') && (t2[3] - '0' == i % 60 / 10 || t2[3] == '?') && (t2[4] - '0' == i % 60 % 10 || t2[4] == '?')) { a2[num2] = i; num2++; } } int max=0; int min=60*24; for(int i=0;i<num1;i++){ for(int j=0;j<num2;j++){ if(a1[i]<a2[j]){ if(max>a2[j]-a1[i]){ max=max; }else{ max=a2[j]-a1[i]; } if(min<a2[j]-a1[i]){ min=min; }else{ min=a2[j]-a1[i]; } } } } printf("%d %d",min,max); }
思路来源于牛友