1014 福爾摩斯的約會 (20)(20 分)
大偵探福爾摩斯接到一張奇怪的字條:「我們約會吧! 3485djdkxh4hhge 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分鐘。現給定兩對字串,請幫助福爾摩斯解碼得到約會的時間。
輸入格式:
輸入在4行中分別給出4個非空、不包含空格、且長度不超過60的字串。
輸出格式:
在一行中輸出約會的時間,格式為「day hh:mm」,其中「day」是某星期的3字元縮寫,即mon表示星期一,tue表示星期二,wed表示星期三,thu表示星期四,fri表示星期五,sat表示星期六,sun表示星期日。題目輸入保證每個測試存在唯一解。
輸入樣例:
3485djdkxh4hhge
2984akdfkkkkggedsb
s&hgsfdk
d&hyscvnm
輸出樣例:
thu 14:04
分析:
1.從前面兩字串中,找到第1對相同的大寫英文本母(a~g),得到日期。第4個字母'd',代表星期四
2.從前面兩字串中,找到第2對相同的符合條件的字元(0~9或者是a~z),得到小時。'e',是第5個英文本母,代表一天裡的第14個鐘頭(於是一天的0點到23點由數字0到9、以及大寫字母a到n表示),這裡注意從第一對符合條件的字母後面的位置開始尋找。
3.從後面兩字串中,找到第一對相同的英文本母在字串中的位置,為分鐘。
**:
#include #include int main()
}for(i++; i < 60; i++)//i++保證在第一對相等的合法字元後進行搜尋
}int minute;//表示分鐘
for(i = 0; i < 60; i++)
}char *days[7] = ;
int day = result[0] - 'a';//表示日期的字串的位置
int hour = isdigit(result[1]) ? result[1] - '0' : result[1] - 'a' + 10;//計算小時數
printf("%s %02d:%02d", days[day], hour, minute);
return 0;
}
PATB1014 福爾摩斯的約會
思路 輸入 四個字串 分別求其第乙個滿足條件的字元。用hash輸出 知識點 求第乙個滿足條件的字元用 for break及時退出迴圈 乙個字串中分兩次不同的的遍歷 來判斷的不同的條件 用 i 來連線 for i 0 i size1 i for i i 1 i size1 i 參考 void b101...
PAT B1014 福爾摩斯的約會
大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm。大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間星期四 14 04,因為前面兩字串中第 1 對相同的大寫英文本母 大小寫有區分 是第 4 ...
PATB1014 福爾摩斯的約會
1014 福爾摩斯的約會 20 分 大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm。大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間星期四 14 04,因為前面兩字串中第 1 對相同的大...