A. Tricky Template

#include

using namespace std;

const int N=25;

char a[N],b[N],c[N];
int n;

int main()
{
	int t;
	cin>>t;
	
	while(t--)
	{
		cin>>n;
		cin>>a>>b>>c;
		
		bool flag=false;
		for(int i=0;i<n;i++)
		{
			if(a[i]!=c[i]&&b[i]!=c[i])
			{
				flag=true;
				break;
			}
		}
		
		if(flag)	puts("Yes");
		else	puts("No");
	}
	
	return 0;
}

vp的时候16分钟写出来这题

还是非常激动的,虽然是A题,题目的意思是说,输入三个字符串,问是否存在一个模板字符串使得能和前面两个字符串匹配,不能和第三个字符串匹配

匹配的要求是如果模板串的字母是小写字母,就必须完全相等算匹配

如果是大写字母,不等于小写字母算匹配,比如说模板串是A,输入的字符串不是a就算匹配

输入的字符串全是小写字母,模板串可以包含大写字母和小写字母

经过分析,要使得前面两个字符串匹配同时第三个字符串不匹配,就寻找第三个字符串和前面两个字符串的差异情况即可,因为假设字符串是相等的,那完全不可以前面两个匹配,第三个不匹配

事实上,只要有一个字母,c(第三个字符串)和a(第一个字符串),b(第二个字符串)都不相同,假设是小写字母h,然后让模板串是大写字母H,可以满足和a,b都匹配,和c不匹配的要求

你可能感兴趣的:(#,CF,div2,A题,算法,数据结构)