欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【PAT乙级】1014 福尔摩斯的约会 (20 分)【模拟 / 很坑】

发布时间:2025/3/20 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【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 分)【模拟 / 很坑】的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。