1014 福尔摩斯的约会 (20)

//PAT1014
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <vector>
#include <cstdio>
#include <cctype>

using namespace std;

inline bool is_week(char ch)
{
	return (ch >= 'A' && ch <= 'G');
}

inline bool is_hour(char ch)
{
	return ( ch>='0' && ch<='9') || ( ch>='A' && ch<='N' );
}

int main()
{
	map<char, string> mp_week;		//建立星期映射表
	mp_week['A'] = "MON";
	mp_week['B'] = "TUE";
	mp_week['C'] = "WED";
	mp_week['D'] = "THU";
	mp_week['E'] = "FRI";
	mp_week['F'] = "SAT";
	mp_week['G'] = "SUN";

	vector<string> v(4);
	for (int i=0; i<4; i++)
	{
		cin>>v[i];
	}
	
	int i=0;
	for (; i<v[0].length() && i<v[1].length(); i++)
	{
		if ( v[0][i] == v[1][i] && is_week( v[0][i] ) )		//相同位置相同字符且又是代表星期的字符
		{
			cout<<mp_week[v[0][i]]<<" ";
			break;
		}
	}

	for (i++; i<v[0].length() && i<v[1].length(); i++)
	{
		if ( v[0][i] == v[1][i] && is_hour( v[0][i] ) )		//相同位置相同字符且又是代表时间的字符
		{
			if ( v[0][i] <='9' )
				cout<<"0"<<v[0][i]<<":";		//格式不能乱
			else
				cout<<static_cast<int>( v[0][i] - 'A' + 10 )<<":";
			break;
		}
	}

	for (i=0; i<v[2].length()&&i<v[3].length(); i++)
	{
		if ( v[2][i] == v[3][i] && isalpha(v[2][i]) )		//相同位置,相同字符且都是英文字符
			break;
	}
	printf("%02d", i);						//格式不能乱
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值