PAT B1014 -- 福尔摩斯的约会

牛客网PAT乙级第四题,福尔摩斯的约会,题目描述大致如下:

输入四行,每行非空,不包括空格,长度不超过60的字符串。

前面两个字符串,比如第一对相同的大写字母(区分大小写)是第4个英文字母'D',代表周四,第二个相同的字符是'E',代表一天中的14点(一天24h表示为0-9,A-N),后面两个字符串第一对相同的英文字母's'出现在第4个位置(从0开始技术)上,代表第4分钟。

输出"DAY HH:MM"

题目要求的输入输出如下:

PAT B1014 -- 福尔摩斯的约会_第1张图片

实际程序的运行结果如下:

PAT B1014 -- 福尔摩斯的约会_第2张图片


代码如下:

#include 
#include 

using namespace std;

int main()
{
	string s1, s2, s3, s4;
	string week[7] = { "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN" };
	while (cin >> s1 >> s2 >> s3 >> s4)
	{
		int flag = 0;
		int len = s1.length() > s2.length() ? s2.length() : s1.length();
		for (int i = 0; i <= len; i++)
		{
			if (s1[i] == s2[i] && s1[i] >= 'A' && s1[i] <= 'G')
			{
				int m = s1[i] - 'A' + 10;
				cout << week[m%10] << ' ';
				flag = i;
				break;
			}
		}

		for (int j = flag + 1; j <= len; j++)
		{
			if (s1[j] == s2[j] && (s1[j] >= 'A' && s1[j] <= 'N' || s1[j]>='0' && s1[j] <= '9'))
			{
				if (s1[j] >= 'A' && s1[j] <= 'N')
				{
					int x = s1[j] - 'A' + 10;
					cout << x / 10 << x % 10 << ":";
				}
				else
				{
					int y = s1[j] - '0';
					cout << y / 10 << y % 10 << ":";
				}
				break;
			}
		}

		len = s3.length() > s4.length() ? s4.length() : s3.length();
		for (int k = 0; k <= len; k++)
		{
			if (s3[k] == s4[k] && (s3[k] >= 'A' && s3[k] <= 'Z' || s3[k]>='a' && s3[k] <= 'z'))
			{
				cout << k / 10 << k % 10;
				break;
			}
		}
	}
    return 0;
}

你可能感兴趣的:(PAT乙级)