码迷,mamicode.com
首页 > 其他好文 > 详细

1014. 福尔摩斯的约会

时间:2018-02-26 13:40:20      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:color   blog   ima   图片   print   height   microsoft   can   break   

 题目截图:

技术分享图片

 

思路:

  字符串处理。

 

代码:

 1 /*
 2     1014. 福尔摩斯的约会
 3 */
 4 
 5 #include <stdio.h>
 6 #include <string.h>
 7 #include <math.h>
 8 #include <stdlib.h>
 9 #include <time.h>
10 
11 #define maxn 61
12 char s1[maxn], s2[maxn];             // 存储两个字符串
13 // 星期缩写 
14 char day[][8] = {"", "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
15 
16 int main() {
17     scanf("%s %s", s1, s2);
18     int len1=strlen(s1), len2=strlen(s2);
19     int minL = (len1<len2) ? len1 : len2;
20     int d=0, h=0, m=0;                // d表示星期,h表示小时,m表示分 
21     int i;
22     for(i=0; i<minL; ++i) {
23         if(s1[i]==s2[i] && s1[i]>=A && s1[i]<=G) {
24             d = s1[i]-A+1;        // 第一对相同的大写字母 
25             break;
26         }
27     }
28     i++;                            // 注意要后移一位
29     for(; i<minL; ++i) {            // 查找第二对相同的字符 
30         if(s1[i]==s2[i]) {
31             if(s1[i]>=0 && s1[i]<=9) {            // 数字表示0-9 
32                 h = s1[i]-0;
33                 break;
34             } else if(s1[i]>=A && s1[i]<=N) {    // 大写字母表示10-23 
35                 h = s1[i]-A+10;
36                 break;
37             }
38         }
39     }
40     scanf("%s %s", s1, s2);
41     len1=strlen(s1); len2=strlen(s2);
42     minL = (len1<len2) ? len1 : len2;
43     for(i=0; i<minL; ++i) {            // 查找第一对相同的字母 
44         if(s1[i]==s2[i] && ((s1[i]>=a && s1[i]<=z) || (s1[i]>=A && s1[i]<=Z))) {
45             m = i;
46             break;
47         }
48     }
49     printf("%s %02d:%02d", day[d], h, m);    // 输出,小时和分要输出两位 
50 
51     return 0;
52 }

 

1014. 福尔摩斯的约会

标签:color   blog   ima   图片   print   height   microsoft   can   break   

原文地址:https://www.cnblogs.com/coderJiebao/p/PAT1014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!