大偵探福爾摩斯接到一張奇怪的字條:「我們約會吧! 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 對相同的大...