目錄
1,題目描述
題目大意
2,思路
3,AC代碼
4,解題過程
第一搏
第二搏
1,題目描述
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CM4MzN1EGOyImN0gTOzEWNzYzX4QTN1UTM3IzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
Sample Input:
3485djDkxh4hhGE
2984akDfkkkkggEdsb
s&hgsfdk
d&Hyscvnm
Sample Output:
THU 14:04
題目大意
找出幾個關鍵位置的元素,這些元素對應一些特定的日期與時間;
- since thefirst common capital English letter (case sensitive)shared by the first twostrings :前兩個字元串中,首個位置相同且元素相同的大寫字母A-G(代表星期一到星期天);
- the secondcommon character :承接上一句,第二個位置相同(在找到符合條件1的元素後的第二個)且元素相同的0-9或A-N(代表0-23);
- the English letter shared bythe last two strings:後兩個字元串中,首個位置相同且元素相同的英文字母;
2,思路
了解了題目意思後,就很好解決了。(注意一些小的細節)
3,AC代碼
#include<iostream>
#include<vector>
#include<string.h>
#include<map>
using namespace std;
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
int d, h, m;//d天 h時 m分
string day[8] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
string s1, s2, s3, s4;
cin>>s1>>s2>>s3>>s4;
int flag = 0;
for(int i = 0; i < s1.length() && i < s2.length(); i++){
if(flag == 1 && s1[i] == s2[i]){
if(s1[i] >= '0' && s1[i] <= '9'){
h = s1[i] - '0';
break;
}
else if(s1[i] >= 'A' && s1[i] <= 'N'){
h = s1[i] - 'A' + 10;
break;
}
}
if(flag == 0 && s1[i] == s2[i] && s1[i] >= 'A' && s1[i] <= 'G'){//'A' <= s1[i] <= 'G'
d = s1[i] - 'A';
flag = 1;
}
}
for(int i = 0; i < s3.length() && i < s4.length(); i++){
if(s3[i] == s4[i] && isalpha(s3[i])){
m = i;
break;
}
}
printf("%s %02d:%02d", day[d].c_str(), h, m);
return 0;
}
4,解題過程
第一搏
(本來以為能很快解決這一題。。。結果深深的陷入了戰場,被一道20分的題【而且完全讀懂了題意】折磨到爆炸)
測試點4:尋找day字段時,第一個大寫字母表示星期幾,範圍是'A'-'G';
第二搏
注意到:時間是0-23,即0-9和A-N(不是Z);
兩個地方都要break (啊啊啊啊找了一下午,噗噗噗)!!!