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

查看原题目请点我这里
解题思路
需要注意的地方是第二个相同的字符,指的是字母A-N和0-9的字符,另外输出的时候需要用0填充不足两位的情况。
字符串数组可以用来存星期的字符串。
心态崩了
这道题好坑呀,西湖的水,我的泪~
本来我在牛客网上顺利的通过了美滋滋,但是拿到PAT上一提交,发现总是有一个测试点过不去,哇,我的心态,炸穿了呀~
第一个比对的不是所有的大写字母,而是A-G之间的大写字母,我弄了超级久才发现呀!
代码如下

#include<cstdio>
#include<cstring>
using namespace std;
char str[][4]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
int main(){
    char a[80],b[80],x[80],y[80];
    gets(a);gets(b);gets(x);gets(y);//scanf也可以的,这里没坑
    int len1=strlen(a);
    int len2=strlen(b);
    int week=0,time=0,minute=0;
    int j;
    for(j=0;j<len1&&j<len2;j++){
        if(a[j]==b[j]&&a[j]>='A'&&a[j]<='G'){
            week=a[j]-'A';
            break;
        }
    }
    j=j+1;
    while(j<len1&&j<len2){
        if(a[j]==b[j]&&a[j]>='A'&&a[j]<='N'){
            time=a[j]-'A'+10;
            break;
        }else if(a[j]==b[j]&&a[j]<='9'&&a[j]>='0'){
            time=a[j]-'0';
            break;
        }
        j++;
    }
    int len3=strlen(x);
    int len4=strlen(y);
    for(int i=0;i<len3&&i<len4;i++){
        if(x[i]==y[i]){
            if((x[i]>='a'&&x[i]<='z')||(x[i]>='A'&&x[i]<='Z')){
                minute=i;
                break;
            }   
        }
    }
    printf("%s %02d:%02d\n",str[week],time,minute);
    return 0;
}
全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务