1061 Dating

Posted CSU迦叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1061 Dating相关的知识,希望对你有一定的参考价值。

笔记:

第一个输出根据的是大写字母

第二个输出根据的是0-9andA-N

第三个输出根据的是大写字母和小写字母

知道范围便方便确定边界

两两比对时,先遍历一个字符串,遇到在范围内的字符,看其和第二个字符串同位置的字符是否相等

最后注意整数的补零对齐

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;

int main(){
	char str[4][70];
	for(int i=0;i<4;i++){
		scanf("%s",&str[i]);
	}
	int len1 = min(strlen(str[0]),strlen(str[1]));
	int mark1,mark2,mark3;
	for(int i=0;i<len1;i++){
		if(str[0][i]-'A'>=0&&'G'-str[0][i]>=0){
			if(str[0][i]==str[1][i]){
				mark1 = i;
				break;
			}
		}
	}
	for(int i=mark1+1;i<len1;i++){
		if((str[0][i]-'0'>=0&&'9'-str[0][i]>=0)||(str[0][i]-'A'>=0&&'N'-str[0][i]>=0)){
			if(str[0][i]==str[1][i]){
				mark2 = i;
				break;
			}
		}
	}
	
	char res1[10] = "";
	int res2 = 0;
	
	switch(str[0][mark1]){
		case 'A':
			strcpy(res1,"MON");
			break;
		case 'B':
			strcpy(res1,"TUE");
			break;
		case 'C':
			strcpy(res1,"WED");
			break;
		case 'D':
			strcpy(res1,"THU");
			break;
		case 'E':
			strcpy(res1,"FRI");
			break;
		case 'F':
			strcpy(res1,"SAT");
			break;
		case 'G':
			strcpy(res1,"SUN");
			break;	
	}
	
	if(str[0][mark2]-'0'>=0&&'9'-str[0][mark2]>=0){
		res2 = str[0][mark2]-'0';
	}else{
		res2 = str[0][mark2]-'A'+10;
	}
	
	int len2 = min(strlen(str[2]),strlen(str[3]));
	for(int i=0;i<len2;i++){
		if((str[2][i]-'a'>=0&&'z'-str[2][i]>=0)||(str[2][i]-'A'>=0&&'Z'-str[2][i]>=0)){
			if(str[2][i]==str[3][i]){
				mark3 = i;
				break;
			}
		}
	}
	
	printf("%s %02d:%02d",res1,res2,mark3);
	return 0;
}

以上是关于1061 Dating的主要内容,如果未能解决你的问题,请参考以下文章

1061 Dating (20 分)

1061 Dating (20)

PAT B1014/A1061 Dating

1061 Dating (20分)

1061 Dating

1061. Dating (20)