You are given three strings , and of the same length . The strings consist of lowercase English letters only. The -th letter of is , the -th letter of is , the -th letter of is .
For every () you must swap (i.e. exchange) with either or . So in total you’ll perform exactly swap operations, each of them either or ( iterates over all integers between and , inclusive).
For example, if is “code”, is “true”, and is “help”, you can make equal to “crue” taking the -st and the -th letters from and the others from . In this way becomes “hodp” and becomes “tele”.
Is it possible that after these swaps the string becomes exactly the same as the string ?
Input
The input consists of multiple test cases. The first line contains a single integer () — the number of test cases. The description of the test cases follows.
The first line of each test case contains a string of lowercase English letters .
The second line of each test case contains a string of lowercase English letters .
The third line of each test case contains a string of lowercase English letters .
It is guaranteed that in each test case these three strings are non-empty and have the same length, which is not exceeding .
Output
Print lines with answers for all test cases. For each test case:
If it is possible to make string equal to string print “YES” (without quotes), otherwise print “NO” (without quotes).
You can print either lowercase or uppercase letters in the answers.
Example
Input
4
aaa
bbb
ccc
abc
bca
bca
aabb
bbaa
baba
imi
mii
iim
Output
NO
YES
YES
NO
Note
In the first test case, it is impossible to do the swaps so that string becomes exactly the same as string .
In the second test case, you should swap with for all possible . After the swaps becomes “bca”, becomes “bca” and becomes “abc”. Here the strings and are equal.
In the third test case, you should swap with , with , with and with . Then string becomes “baba”, string becomes “baba” and string becomes “abab”. Here the strings and are equal.
In the fourth test case, it is impossible to do the swaps so that string becomes exactly the same as string .
Process
Compare and , if and are equal, we need to swap with to make and are equal. If the comparision shows that and are not equal, please compare and . If and are equal, we should swap and . As increases, keep comparing and or until they are not equal.
Code
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
for (int j = 1; j <= n; j++)
{
bool flag = 1;
string a, b, c;
cin >> a >> b >> c;
for (int i = 0; i < a.size(); i++)
{
char temp;
if (c[i] == a[i])
{
temp = c[i];
c[i] = b[i];
b[i] = temp;
}
else if (c[i] == b[i])
{
temp = c[i];
c[i] = a[i];
a[i] = temp;
}
else
{
flag = 0;
break;
}
}
if (flag)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
来源:CSDN
作者:ccql
链接:https://blog.csdn.net/qq_43510916/article/details/104313287