小Z的家庭族谱

Description

 

小时候有一段儿歌:

爸爸的爸爸叫什么 爸爸的爸爸叫爷爷

爸爸的妈妈叫什么 爸爸的妈妈叫奶奶

妈妈的爸爸叫什么 妈妈的爸爸叫外公

妈妈的妈妈叫什么 妈妈的妈妈叫外婆

现在我们用'A'字符代表爸爸,'B'字符代表妈妈,'C'字符代表爷爷,'D'字符代表奶奶,'E'字符代表外公,'F'字符代表外婆。

现在小Z想用字符串来代表家庭的一个关系表达式,比如:'AB'表示小Z的奶奶,再比如'BAC'表示小Z外公的爷爷。

现在小Z说出了两个字符串S1和S2,问你这两个关系表达式所代表的是同一个人吗?

Input

 

第一行输入样例组数t (t<20)。

每组样例包含两行输入。(数据保证字符串长度小于30)

第一行:S1代表第一个关系表达式

第二行:S2代表第二个关系表达式

Output

 

如果两个关系表达式代表的是同一个人那么就输出一行'YES'(不带单引号)

如果两个关系表达式代表的不是同一个人那么就输出一行'NO'(不带单引号)

Sample Input 1 

1
AB
D

Sample Output 1

YES

Hint

两个字符串不一定等长哦~

思路:除了AB都拆掉,最后判断是否一样即可

#include<cstdio>
#include<string>
#include<iostream>
#include<cstring>
using namespace std;
char s[50];
int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		string a="",b="";
		scanf("%s",s);
		int len=strlen(s);
		for(int i=0;i<len;i++){
			if(s[i]=='A'||s[i]=='B')
			a+=s[i];
			else if(s[i]=='C')
			a+="AA";
			else if(s[i]=='D')
			a+="AB";
			else if(s[i]=='E')
			a+="BA";
			else if(s[i]=='F')
			a+="BB";
		}
		scanf("%s",s);
		len=strlen(s);
		for(int i=0;i<len;i++){
			if(s[i]=='A'||s[i]=='B')
			b+=s[i];
			else if(s[i]=='C')
			b+="AA";
			else if(s[i]=='D')
			b+="AB";
			else if(s[i]=='E')
			b+="BA";
			else if(s[i]=='F')
			b+="BB";
		}
		if(a==b) printf("YES\n");
		else printf("NO\n");
	} 
	return 0;
}