当前位置 博文首页 > XingziYY的博客:1014 福尔摩斯的约会——c++实现

    XingziYY的博客:1014 福尔摩斯的约会——c++实现

    作者:[db:作者] 时间:2021-09-20 22:51

    1. 题目介绍

    2. 思路

    该题就是寻找两个字符串中符合要求的相同的字符,

    星期:A~G

    小时:0~9或A~N

    分钟:a~z或A~Z

    由于星期的判定条件包含在小时中,所以我设了一个flag标志位,用来判断是否已找到星期的字符

    3. 具体代码实现

    #include<iostream>
    #include<string>
    using namespace std;
    int main(){
        string s1,s2,s3,s4;
        cin>>s1>>s2>>s3>>s4;
        string week[7]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
        int flag=0;   //判断是否已找到星期的字符
        for(int i=0;i<s1.size()&&i<s2.size();i++){
            if(s1[i]!=s2[i])
                continue;
            else {
                if(flag==0&&s1[i]>='A'&&s1[i]<='G'){   //判断星期
                           cout<<week[s1[i]-'A']<<" ";
                           flag=1;
                     }
                else if(flag==1&&(s1[i]>='0'&&s1[i]<='9'||s1[i]>='A'&&s1[i]<='N')){  //判断小时
                    if(s1[i]>='0'&&s1[i]<='9')
                         cout<<"0"<<s1[i]<<":";
                    else
                         cout<<s1[i]-'A'+10<<":";
                    break;                
                }
            }
        }
        for(int j=0;j<s3.size()&&j<s4.size();j++)  
            if(s3[j]==s4[j]&&isalpha(s3[j])){     //判断分钟
                printf("%02d",j);
                break;
            }
        return 0;
    }

    4. 收获

    代码中还用到了isalpha函数,判断是否是字母。此外,isalnum函数判断是否是数字或字母;isupper判断是否是大写字母;islower判断是否是小写字母

    cs
    下一篇:没有了