生活随笔
收集整理的这篇文章主要介绍了
【PAT乙级】1014 福尔摩斯的约会 (20 分)【模拟 / 很坑】
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
之前小号写过: https://blog.csdn.net/bettle_king/article/details/116546412 这里就直接复制过来了
https://pintia.cn/problem-sets/994805260223102976/problems/994805308755394560
这道题很坑很坑
- 坑点一 第一个值的范围是 “A" <=ans1 <= “G” 因为星期最大是 7
- 坑点二 第二个值的范围是 “A" <=ans2 <= “N” 或 " 0" <=ans2<= " 9 " 且第二个的位置在第一个的后面
- 坑点三 输出的时候个位数要补零,二位数不用。
- 坑点四 最坑的就是它的位置也是一一对应的,且字母相等。
我的代码如下:
#include<cstdio>
#include<iostream>
#include<string>
using namespace std
;
string day
[8]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
int ans1
,ans2
,ans3
;
int main(void)
{string s1
,s2
,s3
,s4
;cin
>>s1
>>s2
>>s3
>>s4
;int k
=0;int start1
=0;int start2
=0;for(int i
=0;i
<s1
.size();i
++){for(int j
=0;j
<s2
.size();j
++){if(s1
[i
]==s2
[j
]&&s1
[i
]>='A'&&s1
[i
]<='G'&&i
==j
){ans1
=s1
[i
]-'A';k
++;start1
=i
+1;start2
=j
+1;}if(k
==1) break;}if(k
==1) break;}for(int i
=start1
;i
<s1
.size();i
++){for(int j
=start2
;j
<s2
.size();j
++){if( (s1
[i
]>='A'&&s1
[i
]<='N') || (s1
[i
]>='0'&&s1
[i
]<='9') )if(s1
[i
]==s2
[j
]&&i
==j
){if(s1
[i
]>='A') ans2
=10+s1
[i
]-'A';else ans2
=s1
[i
]-'0';k
++;}if(k
==2) break;}if(k
==2) break;}bool flag
=false;for(int i
=0;i
<s3
.size();i
++){for(int j
=0;j
<s4
.size();j
++){if( (s3
[i
]>='a'&&s3
[i
]<='z')||(s3
[i
]>='A'&&s3
[i
]<='Z')){if(s3
[i
]==s4
[j
]&&i
==j
) {flag
=true;ans3
=j
;break;}}}if(flag
) break;}cout
<<day
[ans1
]<<" ";printf("%02d:%02d",ans2
,ans3
);return 0;
}
#include<cstdio>
#include<iostream>
#include<string>
using namespace std
;
string day
[8]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
string s1
,s2
,s3
,s4
;
int main(void)
{cin
>>s1
>>s2
>>s3
>>s4
;int start
=0;for(int i
=0;i
<s1
.size()&&i
<s2
.size();i
++){if(s1
[i
]>='A'&&s1
[i
]<='G'&&s2
[i
]>='A'&&s2
[i
]<='G'&&s1
[i
]==s2
[i
]&&!start
){start
=1;cout
<<day
[s1
[i
]-'A']<<" ";continue;}if(start
){if(s1
[i
]>='0'&&s1
[i
]<='9'&&s2
[i
]>='0'&&s2
[i
]<='9'&&s1
[i
]==s2
[i
]){printf("%02d:",s1
[i
]-'0');break;}if(s1
[i
]>='A'&&s1
[i
]<='N'&&s2
[i
]>='A'&&s2
[i
]<='N'&&s1
[i
]==s2
[i
]){printf("%02d:",s1
[i
]-'A'+10);break;}}}for(int i
=0;i
<s3
.size()&&i
<s4
.size();i
++){if(s3
[i
]>='a'&&s3
[i
]<='z'||(s3
[i
]>='A'&&s3
[i
]<='Z'))if(s3
[i
]==s4
[i
]){printf("%02d\n",i
);break;}}return 0;
}
总结
以上是生活随笔为你收集整理的【PAT乙级】1014 福尔摩斯的约会 (20 分)【模拟 / 很坑】的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。