zoukankan      html  css  js  c++  java
  • pat_1014

    1014. 福尔摩斯的约会 (20)

    时间限制
    50 ms
    内存限制
    32000 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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
    

    =======================format is the only point you should consider================================
    #include <stdio.h>
    #include <string.h>
    
    char weeks[][4] ={"MON","TUE", "WED","THU" , "FRI", "SAT","SUN"} ;
    
    int main ( void )
    {
        char week1[66] ,week2[66] ;
        char time1[66], time2[66] ;
     
        int len  ;
        int i , j;
    
        char tmp[4] ;
     
        scanf("%s", week1) ;
    
        scanf("%s", week2) ;
     
        scanf("%s", time1) ;
     
        scanf("%s", time2) ;
    
        memset(tmp, 0, sizeof (tmp) ) ;
     
        len  = strlen(week1);
        j = 0 ;
    
        for ( i = 0 ; i < len ; i++)
        {
            if( ( week1[i] ==week2[i]) && ( week1[i] >= 65 && week1[i]<= 71) && j==0 )
            {
                tmp[0] = week1[i];
             
                j=1 ;
                continue ;
            }
            if ( ( week1[i] ==week2[i]) && (( week1[i] >= 65 && week1[i]<= 78) || (week1[i] >= 48  && week1[i]<= 57) )  && j==1  )
            {    
                tmp[j] = week1[i] ;
             
                break ;
            }
        }
    
    
        len = strlen(time1) ;
    
        for ( i = 0 ; i < len  ; i++ )
        {
            if (  time1[i] == time2[i] )  
            {
    
                if ( (time1[i] >= 65 && time1[i]<= 90 ) ||(time1[i] >=97 && time1[i] <= 122) )
                 
                {
                    j=i ;
                
                    break ;
                }
            }
        }
    
    
        printf("%s ", weeks[(int) (tmp[0] - 'A')]) ;
    
        if ( tmp[1] >= 'A')
            printf("%d:", (int)(tmp[1]-'A')+10) ;
        else
            printf("0%d:" ,(int)(tmp[1]-'0')) ;
    
    //pay attention to 00:00 this condition
    //add 0 in front of the number
    
        if (j <=9 )
            printf("0") ;
    
        printf("%d", j) ;
        return 0 ;
    
     
    
         
    }

  • 相关阅读:
    转 c#性能优化秘密
    转 the best for wcf client
    迁移到简书通知
    docker初体验
    PyQT 单词弹幕桌面生成!
    Python 常见排序查找算法-二分法,归并,冒泡,插入
    Python 将小姐姐画在Excel上
    TensorFlow基于神经网络实现井字棋
    TensorFlow(八) TensorFlow图像识别(KNN)
    TensorFlow(七) 地址匹配
  • 原文地址:https://www.cnblogs.com/inuyasha1027/p/pat_practice16.html
Copyright © 2011-2022 走看看