【1061 20 字符串】 Dating

传送门

题意

给定 \(4\) 个字符串 \(a,b,c,d\),找到 \(a,b\) 第一个相同的位于 \(A\sim G\) 的字符表示星期,第二个相同的位于 \(0\sim 9,A\sim N\) 的字符表示小时,\(c,d\) 第一个相同的字母的位置表示分钟

数据范围

\(|a,b,c,d| \leq 60\)

题解

  • 根据题意遍历即可

Code

#include<bits/stdc++.h>
using namespace std;
int get(char c){
    if(c>='A' && c<='Z') return c-'A'+10;
    else return c-'0';
}
bool check(char c){
    if(c>='A' && c<='N' || c>='0' && c<='9') return 1;
    else return 0;
}
int main(){
    string a,b,c,d; cin>>a>>b>>c>>d;
    string week[7]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
    int w,h,m;
    bool f=0;
    for(int i=0,j=0;i<a.size() && j<b.size();i++,j++){
        if(!f && a[i]==b[j] && a[i]<='G' && a[i]>='A'){
            w=a[i]-'A';
            f=1;
        } 
        else if(f && a[i]==b[i] && check(a[i])) {
            h=get(a[i]);
            break;
        }
    }
    for(int i=0,j=0; i<c.size() && j<d.size(); i++,j++){
        if(c[i]==d[j] && (c[i]<='Z' && c[i]>='A' || c[i]>='a' &&c[i]<='z')){
            m=i;
            break;
        }
    }
    printf("%s %02d:%02d",week[w].c_str(),h,m);
}
posted @ 2021-02-26 23:28  Hyx'  阅读(52)  评论(0)    收藏  举报