zoukankan      html  css  js  c++  java
  • PAT乙级 1014. 福尔摩斯的约会 (20)

    大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9、以及大写字母A到N表示);后面两字符串第1对相同的英文字母's'出现在第4个位置(从0开始计数)上,代表第4分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。

    输入格式:

    输入在4行中分别给出4个非空、不包含空格、且长度不超过60的字符串。

    输出格式:

    在一行中输出约会的时间,格式为“DAY HH:MM”,其中“DAY”是某星期的3字符缩写,即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期四,FRI表示星期五,SAT表示星期六,SUN表示星期日。题目输入保证每个测试存在唯一解。

    输入样例:

    3485djDkxh4hhGE 
    2984akDfkkkkggEdsb 
    s&hgsfdk 
    d&Hyscvnm
    

    输出样例:

    THU 14:04

    注意不仅要满足相同,还要满足时间的要求。譬如在天数上,相同的字母只能是A-G

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<algorithm>
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     int day,hour,minn;
    11     char a[65],b[65],c[65],d[65];
    12     cin>>a>>b>>c>>d;
    13     int lena=strlen(a),lenb=strlen(b);
    14     int lenc=strlen(c),lend=strlen(d);
    15     int i;
    16     int len1=min(lena,lenb),len2=min(lenc,lend);
    17     for(i=0;i<len1;i++)
    18     {
    19         if(a[i]==b[i]&&a[i]>='A'&&a[i]<='G')
    20         {
    21             day=a[i]-'A'+1;
    22             break;
    23         }
    24     }
    25     i++;
    26     for(;i<len1;i++)
    27     {
    28         if(a[i]==b[i])
    29         {
    30             if(a[i]>='0'&&a[i]<='9')
    31             {
    32                 hour=a[i]-'0';
    33                 break;
    34             }
    35             else if(a[i]>='A'&&a[i]<='N')
    36             {
    37                 hour=a[i]-'A'+10;
    38                 break;
    39             }
    40         }
    41     }
    42     for(i=0;i<len2;i++)
    43     {
    44         if(c[i]==d[i]&&c[i]>='a'&&a[i]<='z')
    45         {
    46             minn=i;
    47             break;
    48         }
    49         if(c[i]==d[i]&&c[i]>='A'&&c[i]<='Z')
    50         {
    51             minn=i;
    52             break;
    53         }
    54     }
    55     if(day==1)
    56         printf("MON ");
    57     else if(day==2)
    58         printf("TUE ");
    59     else if(day==3)
    60         printf("WED ");
    61     else if(day==4)
    62         printf("THU ");
    63     else if(day==5)
    64         printf("FRI ");
    65     else if(day==6)
    66         printf("SAT ");
    67     else if(day==7)
    68         printf("SUN ");
    69     if(hour<10)
    70         printf("0%d:",hour);
    71     else
    72         printf("%d:",hour);
    73     if(minn<10)
    74         printf("0%d
    ",minn);
    75     else
    76         printf("%d
    ",minn);
    77     return 0;
    78 }

  • 相关阅读:
    九种常用排序的性能分析总结
    C语言输出格式总结
    线程安全的单例模式
    反射原理
    二进制的计算(计算机为什么采用补码存储数据)
    java程序员必须会的技能
    09网易校园招聘笔试题
    Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式
    【转】策略与机制分离
    VM PowerCli的简单安装和使用学习
  • 原文地址:https://www.cnblogs.com/Annetree/p/7530544.html
Copyright © 2011-2022 走看看