• 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 ;
    
     
    
         
    }

  • 相关阅读:
    小学生入门激光SLAM<二>、2.1-前端点云帧间匹配
    小学生入门激光SLAM<一>、激光雷达去除畸变
    imgui开发笔记<1>、ubuntu环境下快速应用
    ROS问题记录
    LibTorch实战六:U2-Net理论详解<一>
    git-clone小技巧
    深度学习模型部署概述
    debian10 docker 安装 jenkins
    FastDFS集群部署
    python中的metaclass
  • 原文地址:https://www.cnblogs.com/inuyasha1027/p/pat_practice16.html
Copyright © 2020-2023  润新知