大偵探福爾摩斯接到一張奇怪的字條:輸入格式:輸入在 4 行中分別給出 4 個非空、不包含空格、且長度不超過 60 的字串。我們約會吧!3485djdkxh4hhg 2984akdfkkkkggedsb s&hgsfdk d&hyscvnm。
大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間星期四 14:04
,因為前面兩字串中第 1 對相同的大寫英文本母(大小寫有區分)是第 4 個字母d
,代表星期四;第 2 對相同的字元是e
,那是第 5 個英文本母,代表一天裡的第 14 個鐘頭(於是一天的 0 點到 23 點由數字 0 到 9、以及大寫字母a
到n
表示);後面兩字串第 1 對相同的英文本母s
出現在第 4 個位置(從 0 開始計數)上,代表第 4 分鐘。現給定兩對字串,請幫助福爾摩斯解碼得到約會的時間。
輸出格式:
在一行中輸出約會的時間,格式為day hh:mm
,其中 day 是某星期的 3 字元縮寫,即mon
表示星期一,tue
表示星期二,wed
表示星期三,thu
表示星期四,fri
表示星期五,sat
表示星期六,sun
表示星期日。題目輸入保證每個測試存在唯一解。
輸入樣例:
3485djdkxh4hhge
2984akdfkkkkggedsb
s&hgsfdk
d&hyscvnm
輸出樣例:
thu14:
04
**部分:
#include
#include
int main()
; int i,j=0;
gets
(a);
gets
(b);
gets
(c);
gets
(d);
for(i=
0;i<
strlen
(a)&&i<
strlen
(b);i++
)//找到第一組後標誌位j記1,就不會再進入j=0的判斷
//注意!!!在第一相同字母之後篩選第二組相同字母,對應小時
if(j==1)
if((a[i]
>=
'a'&&a[i]
<=
'n')
||(a[i]
>=
'0'&&a[i]
<=
'9'))if
(a[i]
==b[i]
)//找到後就break終止
}printf
("%s "
,day[middle[0]
-'a'])
;if(middle[1]
>=
'0'&&middle[1]
<=
'9')
printf
("%02d"
,middle[1]
-'0');
//相同的是0-9,就減去48('0'),變為整型的0-9
else
printf
("%2d"
,middle[1]
-'7');
//相同的是a-n,就見去55('7'),變為整型的10-23
for(i=
0;i<
strlen
(c)&&i<
strlen
(d);i++
)printf
(":%02d"
,i);
//不足兩位補0
return0;
}
執行結果:
個人體會
星期:前兩個字串第乙個相等的字元,而且字元必須在』a』 ~ 『g』 之間
小時:前兩個字串第二個相等的字元,而且字元必須在』a』 ~ 『n』 或 『0』 ~ '9』之間
分鐘:後兩個字串第乙個相等的字元, 而且必須是字母
PAT 乙級1014 福爾摩斯
大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm。大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間星期四 14 04,因為前面兩字串中第 1 對相同的大寫英文本母 大小寫有區分 是第 4 ...
PAT 乙級 1014 福爾摩斯的約會
大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm 大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間 星期四 14 04 因為前面兩字串中第1對相同的大寫英文本母 大小寫有區分 是第4個字母...
PAT 乙級 1014 福爾摩斯的約會
時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm 大偵探很快就明白...