【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);
}

浙公网安备 33010602011771号