ZYB's Biology
Accepts: 848
Submissions: 1199
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 131072/131072 K (Java/Others)
问题描述
ZYB(ZJ−267)在NOIP拿到600分之后开始虐生物题,他现在扔给你一道简单的生物题:给出一个DNA序列和一个RNA序列, 问它们是否配对。 DNA序列是仅由A,C,G,T组成的字符串,RNA序列是仅由A,C,G,U组成的字符串。 DNA和RNA匹配当且仅当每个位置上A与U,T与A,C与G,G与C匹配。
输入描述
第一行一个整数T表示数据组数。 对于每组数据: 第一行一个整数N表示DNA和RNA序列的长度. 第二行一个长度为N的字符串A表示DNA序列. 第三行一个长度为N的字符串B表示RNA序列. 1≤T≤10,1≤N≤100
输出描述
对于每组数据,输出一行YES或NO,表示是否匹配.
输入样例
2 4 ACGT UGCA 4 ACGT ACGU
输出样例
YES NO
解:看题就可以了,不解释
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxm=1e3+10;
char s1[maxm];
char s2[maxm];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
scanf("%s%s",s1,s2);
int ok=1;
for(int i=0;i<n;i++)
{
if(s1[i]=='A'&&s2[i]=='U')
{
continue;
}
else if(s1[i]=='T'&&s2[i]=='A')
{
continue;
}
else if(s1[i]=='C'&&s2[i]=='G')
{
continue;
}
else if(s1[i]=='G'&&s2[i]=='C')
{
continue;
}
else
{
ok=0;
break;
}
}
if(!ok)
{
printf("NO\n");
}
else
{
printf("YES\n");
}
}
return 0;
}