#include<bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define pre(i,a,b) for(int i=(a);i>=(b);i--)
using namespace std;
typedef pair<int,int> pii;
const int N=2e5+5;
char a[N],b[N];
int n,cnta[2],cntb[2];
bool check(){
int l=1;
a[n+1]=b[n+1]='C';
rep(i,1,n+1){
if(b[i]=='C'){
if(a[i]!='C'
||cnta[0]>cntb[0]
||cnta[1]>cntb[1]) return 0;
int x=cntb[0]-cnta[0],y=cntb[1]-cnta[1];
rep(j,l,i){
if(a[j]=='C'){
if(x) x--,a[j]='A';
else if(y) y--,a[j]='B';
}
}
int ra=0,rb=0;
rep(j,l,i){
if(b[j]=='B') rb=j;
if(a[j]=='B') ra=j;
}
if(rb>ra) return 0;
rep(i,0,1) cnta[i]=cntb[i]=0;
l=i+1;
}
if(a[i]!='C') cnta[a[i]-'A']++;
cntb[b[i]-'A']++;
}
return 1;
}
signed main(){
int t;
cin>>t;
while(t--){
memset(a,0,sizeof a);
memset(b,0,sizeof b);
rep(i,0,1) cnta[i]=cntb[i]=0;
cin>>n;
rep(i,1,n) cin>>a[i];
rep(i,1,n) cin>>b[i];
cout<<(check()?"Yes":"No")<<'\n';
}
return 0;
}
为什么?