#include<bits/stdc++.h>
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不匹配的要求