PAT甲 1061 Dating

题意

1,2字符串第一个相同的大写字母代表星期几,第二相同的大写代码代表时间小时
3,4字符串第一个相同字符的位置代表时间分

源码

#include<iomanip>
using namespace std;
bool isEngLetter(char x){
	if(x<='z'&&x>='a') return true;
	if(x<='Z'&&x>='A') return true;
	return false;
}
bool isAN(char x){
	if(x<='N'&&x>='A') return true;
	return false; 
}
bool isAG(char x){
//	if(x<='g'&&x>='a') return true;
	if(x<='G'&&x>='A') return true;
	return false; 
}
bool isNumber(char x){
	if(x<='9'&&x>='0') return true;
	return false;
}
int main(){
	string str1,str2,str3,str4;
	int len1,len2;
	cin>>str1>>str2>>str3>>str4;
	len1=str1.length();
	len2=str2.length();
	char day,hour;
	int count=0;
	for(int i=0;i<len1&&i<len2;i++){
		if(count==0){
			if(str1[i]==str2[i]&&isEngLetter(str1[i])){
				if(isAG(str1[i])){
					day=str1[i];
					count++;
				}	
			}
		}
		else{
			 if(str1[i]==str2[i]){
			 //	cout<<str1[i]<<endl;
			 	if(isAN(str1[i])||isNumber(str1[i])){
			 		hour=str1[i];
			 	//	cout<<str1[i]<<endl;
			 		break;
				 }
			 	
			 }
		}
	}
	//cout<<hour<<endl;
	switch(day){
		case 'A':
		//case 'a':
			cout<<"MON ";	break;
		case 'B':
		//case 'b':
			cout<<"TUE ";	break;
		case 'C':
	//	case 'c':
			cout<<"WED ";	break;
		case 'D':
		//case 'd':
			cout<<"THU ";	break;
		case 'E':
	//	case 'e':
			cout<<"FRI ";	break;
		case 'F':
	//	case 'f':
			cout<<"SAT ";	break;
		case 'G':
	//	case 'g':
			cout<<"SUN ";	break;
	}
	switch(hour){
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9':
			cout<<setw(2)<<setfill('0')<<hour-'0'<<":";
			break;
		case 'A':
		case 'B':
		case 'C':
		case 'D':
		case 'E':
		case 'F':
		case 'G':
		case 'H':
		case 'I':
		case 'J':
		case 'K':
		case 'L':
		case 'M':
		case 'N':
			cout<<setw(2)<<setfill('0')<<hour-'A'+10<<":";
			break; 
	//	case 'a':
	/*	case 'b':
		case 'c':
		case 'd':
		case 'e':
		case 'f':
		case 'g':
		case 'h':
		case 'i':
		case 'j':
		case 'k':
		case 'l':
		case 'm':
		case 'n':
			cout<<setw(2)<<setfill('0')<<hour-'a'+10<<":";
			break;*/
	}
	
	len1=str3.length();
	len2=str4.length();
	//cout<<len1<<" "<<len2;
	int minute;
	for(int i=0;i<len1&&i<len2;i++){
		//cout<<str3[i]<<endl;
		if(str3[i]==str4[i]&&isEngLetter(str3[i])){
			minute=i;
			break;
		}
	}
	cout<<setw(2)<<setfill('0')<<minute<<endl;
	
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值