1014. 福爾摩斯的約會 (20)
/* coded by indere
題目:大偵探福爾摩斯接到一張奇怪的字條:「我們約會吧! 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
分析:前兩個都是根據字母在字母表的位置來得出結果,第三個是根據字母在字串中的位置來得到結果
第乙個大寫字母相同範圍 a---g
第二個大寫字母相同範圍 0---9 + a---n,
這個可能一次不能看懂。以範例來說,第二次相等的字母為e是字母表中的第5個字母, 5 + 9 = 14 對應著14點
第三個字母相同位置範圍 0---60
注意:輸出時,單個數字要以04為例輸出。
*/#include
#include
#include
#define maxsize 60
int min(char *str1, char *str2); /*兩個字串中最小的長度*/
int getindex(char *str1, char *str2, int size, int *begin); /*得到week索引和hours索引*/
int getmins(char *str1, char *str2, int size); /*得到mins索引*/
int main() ;
int hours, mins;
scanf("%s", str1);
scanf("%s", str11);
scanf("%s", str2);
scanf("%s", str22);
int size1 = min(str1, str11);
int size2 = min(str2, str22);
int begin = 0;
int index_week = getindex(str1, str11, size1, &begin); /*得到week索引*/
hours = getindex(str1, str11, size1, &begin); /*得到hours索引*/
mins = getmins(str2, str22, size2); /*得到mins索引*/
printf("%s %02d %02d\n", week[index_week], hours,mins);
free(str1); /*釋放記憶體*/
free(str11);
free(str2);
free(str22);
return0;}
int min(char *str1, char *str2)
int getindex(char *str1, char *str2, int size, int *begin) }}
}else
else
if (str1[i] >= '0' && str1[i] <= '9') }}
}}int getmins(char *str1, char *str2, int size) }}
}
1014 福爾摩斯的約會 20
大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm 大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間 星期四 14 04 因為前面兩字串中第1對相同的大寫英文本母 大小寫有區分 是第4個字母...
1014 福爾摩斯的約會 20
時間限制 50 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm 大偵探很快就明白了...
1014 福爾摩斯的約會 20
大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm 大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間 星期四 14 04 因為前面兩字串中第1對相同的大寫英文本母 大小寫有區分 是第4個字母...