首页 > 代码库 > 1014. 福尔摩斯的约会 (20)
1014. 福尔摩斯的约会 (20)
此题坑极多:有几下几个容易误导人的地方:
1: 天数和时间不仅要英文字母相同, 连位置也要相同.
2: 天数和时间只存在于第一行第二行, 根本不用对比第三行第四行!同理分钟只要对比第三行第四行就行了. 这里简直太坑了!
3: 分钟数, 注意是"英文字母"! 也就是说不一定是小写, 大写也可以的! 整整花了一天时间, 把所有坑踩了遍.
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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
#include <stdio.h> #include <string.h> int main(){ char s[4][60]={}; char d=‘z‘; char h=‘z‘; int m=-1; int dj=0; //ó?à′±ê??D3???μ????? for(int i=0;i<4;i++){ scanf("%s",&s[i]); } for(int i=0;i<2;i++){ for(int j=0;j<strlen(s[i]);j++){ if(s[i][j]==s[i+1][j]){ if(s[i][j]>=‘A‘&&s[i][j]<=‘G‘&&d==‘z‘){ d=s[i][j]; dj=j; } } } } for(int i=0;i<2;i++){ for(int j=0;j<strlen(s[i]);j++){ if(s[i][j]==s[i+1][j]){ if(((s[i][j]>=‘0‘&&s[i][j]<=‘9‘)||(s[i][j]>=‘A‘&&s[i][j]<=‘N‘))&&j>dj&&h==‘z‘){ h=s[i][j]; } } } } for(int i=2;i<4;i++){ for(int j=0;j<strlen(s[i]);j++){ if(s[i][j]==s[i+1][j]){ if(((s[i][j]>=‘A‘&&s[i][j]<=‘Z‘)||(s[i][j]>=‘a‘&&s[i][j]<=‘z‘))&&m==-1){ m=j; } } } } if(d==‘z‘||h==‘z‘||m==-1){ return 0; } switch(d){ case‘A‘: printf("MON"); break; case‘B‘: printf("TUE"); break; case‘C‘: printf("WED"); break; case‘D‘: printf("THU"); break; case‘E‘: printf("FRI"); break; case‘F‘: printf("SAT"); break; case‘G‘: printf("SUN"); break; } printf(" "); switch(h){ case‘0‘: printf("00"); break; case‘1‘: printf("01"); break; case‘2‘: printf("02"); break; case‘3‘: printf("03"); break; case‘4‘: printf("04"); break; case‘5‘: printf("05"); break; case‘6‘: printf("06"); break; case‘7‘: printf("07"); break; case‘8‘: printf("08"); break; case‘9‘: printf("09"); break; case ‘A‘: printf("10"); break; case ‘B‘: printf("11"); break; case ‘C‘: printf("12"); break; case ‘D‘: printf("13"); break; case ‘E‘: printf("14"); break; case ‘F‘: printf("15"); break; case ‘G‘: printf("16"); break; case ‘H‘: printf("17"); break; case ‘I‘: printf("18"); break; case ‘J‘: printf("29"); break; case ‘K‘: printf("20"); break; case ‘L‘: printf("21"); break; case ‘M‘: printf("22"); break; case ‘N‘: printf("23"); break; } printf(":%02d",m); return 0; }
1014. 福尔摩斯的约会 (20)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。