PAT乙級1014 福爾摩斯的約會 (C語言)

2021-09-18 03:57:10 字數 2331 閱讀 4770

大偵探福爾摩斯接到一張奇怪的字條:我們約會吧!3485djdkxh4hhg 2984akdfkkkkggedsb s&hgsfdk d&hyscvnm。大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間星期四 14:04,因為前面兩字串中第 1 對相同的大寫英文本母(大小寫有區分)是第 4 個字母d,代表星期四;第 2 對相同的字元是e,那是第 5 個英文本母,代表一天裡的第 14 個鐘頭(於是一天的 0 點到 23 點由數字 0 到 9、以及大寫字母an表示);後面兩字串第 1 對相同的英文本母s出現在第 4 個位置(從 0 開始計數)上,代表第 4 分鐘。現給定兩對字串,請幫助福爾摩斯解碼得到約會的時間。

輸入格式:輸入在 4 行中分別給出 4 個非空、不包含空格、且長度不超過 60 的字串。

輸出格式:

在一行中輸出約會的時間,格式為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 大偵探很快就明白...