Pat B1014 福爾摩斯的約會 20

2021-08-16 23:11:56 字數 1504 閱讀 2623

大偵探福爾摩斯接到一張奇怪的字條:「我們約會吧! 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.得到四個字串,比較第一二個字串得到星期和小時,星期的字元在a~g之間,小時的字元為0~9,a~n;

2.比較第三四個字串得到分鐘,分鐘的字元為a~z,a~z;

實現**:

#include

#include

#include

using namespace std;

void printfweek(char ch)

}int main()

//第一對字串確定星期與小時

n1=str[0].length();

n2=str[1].length();

min=n1for(int i=0;iif(str[0][i]==str[1][i]&&str[0][i]>='a'&&str[0][i]<='g')

}for(;jif(str[0][j]==str[1][j]&&((str[0][j]>='a'&&str[0][j]<='n')||(str[0][j]>='0'&&str[0][j]<='9')))

}//第二對字串確定分鐘

n1=str[2].length();

n2=str[3].length();

min=n1for(int i=0;iif(str[2][i]==str[3][i]&&((str[2][i]>='a'&&str[2][i]<='z')||(str[2][i]>='a'&&str[2][i]<='z')))

}//列印

printfweek(time[0]);

if(time[1]>='a')

else

cout<'0')<2)<":"

<2)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 對相同的大...