专业企业网站制作,上海专业seo,沈阳免费网站建站模板,网站怎么被收录题目
大侦探福尔摩斯接到一张奇怪的字条#xff1a; 我们约会吧#xff01;3485djDkxh4hhGE 2984akDfkkkkggEdsb shgsfdk dHyscvnm。大侦探很快就明白了#xff0c;字条上奇怪的乱码实际上就是约会的时间星期四 14:04. 因为前面两字符串中第 1 对相同的大写英文字…题目
大侦探福尔摩斯接到一张奇怪的字条 我们约会吧3485djDkxh4hhGE 2984akDfkkkkggEdsb shgsfdk dHyscvnm。大侦探很快就明白了字条上奇怪的乱码实际上就是约会的时间星期四 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 shgsfdk dHyscvnm 输出样例 THU 14:04 分析
这个题题目很长有点点绕看似是一个推理题实则是一个字符匹配题。不要慌只需分别求约会时礼拜几约会时几点具体分钟然后连起来就可以了。
对于礼拜几。一个星期共7天所以只需找到前面两个字符串中字符相等(第一次) 且 属于A~G的字符对于几点。分为0-9点和10-23点前者在前加0输出后者则是找出前面两个字符串中字符相等(第二次) 且 属于A~N的字符。对于具体分钟。0-9时在前加0输出10-59时转为字符串输出。
AC代码
#includeiostream
#includestring
#includecstring
using namespace std;
string Day(char c)
{string day;switch(c){case A:dayMON;break;case B:dayTUE;break;case C:dayWED;break;case D:dayTHU;break;case E:dayFRI;break;case F:daySAT;break;case G:daySUN;break;}return day;
}
string Hour(char c)
{string day;switch(c){case A:day10;break;case B:day11;break;case C:day12;break;case D:day13;break;case E:day14;break;case F:day15;break;case G:day16;break;case H:day17;break;case I:day18;break;case J:day19;break;case K:day20;break;case L:day21;break;case M:day22;break;case N:day23;break;}return day;
}int main()
{int i,flag0;string str[4],day,hour,min;char ch[4][61];for(i0;i4;i){cinstr[i];strcpy(ch[i],str[i].c_str());}//求约会是礼拜几和几点for(i0;i61;i){if(ch[0][i]ch[1][i]){if(ch[0][i]Ach[0][i]Gflag0){dayDay(ch[0][i]);flag1;continue; }int tempch[0][i]-0;if(temp0temp9flag1){hour0to_string(temp);break;}if(ch[0][i]Ach[0][i]Nflag1){hourHour(ch[0][i]);break;}}}//分钟for(i0;i61;i){if(ch[2][i]ch[3][i]){if((ch[2][i]ach[2][i]z)||(ch[2][i]Ach[2][i]Z)){if(i9){min0to_string(i);break;}else{minto_string(i);break;}}}}coutday hour:min;return 0;
}总结
代码长度比较长选择数据类型时没有太多思考后面会优化一下。在提交的过程中总是有个点不得分。后面仔细读题发现开始读题理解错误。求分钟时它是以第3、4字符串中第一对相同字母出现的位置来判定的以为字母要求小写字母其实只是举例而已。 正在刷pat的菜鸟一枚希望得到鼓励与支持 有任何问题在评论区留言告诉我哦
更多题解 pat 乙级 题解汇总持续更新C