/*
* @Author: 365JHWZGo
* @Description: 1014 福尔摩斯的约会 (20 分)
* @Date: 2021-09-09 19:35:04
* @FilePath: \VScodeC++practice\PAT\date.cpp
* @LastEditTime: 2021-09-10 16:48:16
* @LastEditors: 365JHWZGo
*/
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
//区别他们所执行的if条件不同
int sameCharIndex(string s1, string s2, int index, int type)
{
if (s1.size() == 0 || s2.size() == 0)
return index;
int min = s1.length() > s2.length() ? s2.length() : s1.length();
string h = "0123456789ABCDEFGHIJKLMN";
for (int i = index; i < min; i++)
{
//星期
if (type == 0)
{
if (s1[i] == s2[i] && (s1[i] >= 'A' && s1[i] <= 'G'))
{
index = i;
break;
}
}
//时
if (type == 1)
{
if (s1[i] == s2[i] && ((s1[i] >= 'A' && s1[i] <= 'N') || (s1[i] >= '0' && s1[i] <= '9')))
{
index = h.find(s1[i]);
break;
}
}
//分
if (type == 2)
{
if (s1[i] == s2[i] && (s1[i] >= 'A' && s1[i] <= 'Z' || s1[i] >= 'a' && s1[i] <= 'z'))
{
index = i;
break;
}
}
}
return index;
}
int main()
{
string s1, s2, s3, s4;
cin >> s1 >> s2 >> s3 >> s4;
string w[7] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
int week, hour, minute;
week = sameCharIndex(s1, s2, 0, 0);
hour = sameCharIndex(s1, s2, week + 1, 1);
minute = sameCharIndex(s3, s4, 0, 2);
cout<<w[(int)(s1[week]-'A')]<<" ";
if (hour < 10)
cout<<"0"<<hour<<":";
else
cout<<hour<<":";
if (minute < 10)
cout<<"0"<<minute;
else
cout<<minute;
return 0;
}
1014 福尔摩斯的约会 (20 分)
最新推荐文章于 2024-10-16 14:32:06 发布
这篇文章介绍了如何使用C++编程解决一个关于福尔摩斯约会的问题,通过比较两个字符串来找出相同的字符并确定特定位置的时分信息。作者展示了`sameCharIndex`函数的实现,用于根据不同类型(星期、时、分)查找匹配字符的位置。
摘要由CSDN通过智能技术生成