PAT B1014 -- 福爾摩斯的約會

牛客網PAT乙級第四題,福爾摩斯的約會,題目描述大致如下:

輸入四行,每行非空,不包括空格,長度不超過60的字符串。

前面兩個字符串,比如第一對相同的大寫字母(區分大小寫)是第4個英文字母'D',代表週四,第二個相同的字符是'E',代表一天中的14點(一天24h表示爲0-9,A-N),後面兩個字符串第一對相同的英文字母's'出現在第4個位置(從0開始技術)上,代表第4分鐘。

輸出"DAY HH:MM"

題目要求的輸入輸出如下:


實際程序的運行結果如下:



代碼如下:

#include <iostream>
#include <string>

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;
}

發佈了46 篇原創文章 · 獲贊 23 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章