PAT字符串处理题---1014 福尔摩斯的约会 (20分)

1014 福尔摩斯的约会 (20分)

  • 这道题坑多,看清题目要求
  • 第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,只能是A~G
  • 第 2 对相同的字符:0 点到 23 点由数字 0 到 9、以及大写字母 A 到 N 表示
  • 后面两字符串第 1 对相同的英文字母 s 出现在第 4 个位置(从 0 开始计数)
#include<iostream>
#include<ctype.h>
#include<algorithm>
#include<sstream>
#include<string>
#include<cstdio>


using namespace std;

string s[]= {"","MON","TUE","WED","THU","FRI","SAT","SUN"};

int main() {
	string s1,s2,s3,s4;
	cin>>s1>>s2>>s3>>s4;
	int flag=0;
	int cnt1=min(s1.length(),s2.length());
	for(int i=0; i<cnt1; i++) {
		if(!flag) {
			if(s1[i]==s2[i]&&s1[i]>='A'&&s1[i]<='G') {
				cout<<s[s1[i]-'A'+1]<<" ";
				flag=1;
			}
		} else {
			if(s1[i]==s2[i]) {
				if(isdigit(s1[i])) {
					printf("%02d",s1[i]-'0');
					break;
				} else if(s1[i]>='A'&&s1[i]<='N'){
					printf("%02d",s1[i]-'A'+10);
					break;
				}
			}
		}
	}
	cout<<":";
	int cnt2=min(s3.length(),s4.length());
	for(int i=0; i<cnt2; i++) {
		if(isalpha(s3[i])) {
			if(s3[i]==s4[i]) {
				printf("%02d",i);
			}
		}
	}
	return 0;
}
原文地址:https://www.cnblogs.com/bingers/p/13083715.html