【PAT甲级】1061 Dating (20 分)

题意:

给出四组字符串,前两串中第一个位置相同且大小相等的大写字母(A~G)代表了周几,前两串中第二个位置相同且大小相等的大写字母或者数字(0~9,A~N)代表了几点,后两串中第一个位置相同且大小相等的字母所在的位置代表了几分。依照题意输出日期和时间。

代码:

#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
string s1,s2,s3,s4;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>s1>>s2>>s3>>s4;
int cnt=0;
int flag=0;
char ans1=0,ans2=0;
for(int i=0;i<min(s1.size(),s2.size());++i){
if(!flag&&s1[i]==s2[i]&&s1[i]>='A'&&s1[i]<='G'){
ans1=s1[i];
flag=1;
}
else if(flag==1&&s1[i]==s2[i]&&(s1[i]>='0'&&s1[i]<='9'||s1[i]>='A'&&s1[i]<='N')){
ans2=s1[i];
flag=2;
}
}
int pos=0;
for(int i=0;i<min(s3.size(),s4.size());++i)
if(s3[i]==s4[i]&&(s3[i]>='A'&&s3[i]<='Z'||s3[i]>='a'&&s3[i]<='z')){
pos=i;
break;
}
if(ans1=='A')
cout<<"MON";
else if(ans1=='B')
cout<<"TUE";
else if(ans1=='C')
cout<<"WED";
else if(ans1=='D')
cout<<"THU";
else if(ans1=='E')
cout<<"FRI";
else if(ans1=='F')
cout<<"SAT";
else if(ans1=='G')
cout<<"SUN";
cout<<" ";
if(ans2>='0'&&ans2<='9'){
ans2-='0';
cout<<0;
}
else if(ans2>='A'&&ans2<='N')
ans2-='A'-10;
cout<<(int)ans2<<":";
if(pos<10)
cout<<0;
cout<<pos;
return 0;
}

猜你喜欢

转载自www.cnblogs.com/ldudxy/p/11750135.html