生活随笔
收集整理的這篇文章主要介紹了
【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 分)【模拟 / 很坑】的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。