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<iostream>
using namespace std;
int main()
{
int k;
char a[1000],b[1000];
cin>>k;
while(k--)
{ int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
cin>>b[i];
int sum=0;
for(int i=0;i<n;i++)
{
if(a[i]=='A'&&b[i]=='U'||a[i]=='G'&&b[i]=='C'||a[i]=='C'&&b[i]=='G'||a[i]=='T'&&b[i]=='A')
sum++;
}
if(n==sum)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
using namespace std;
int main()
{
int k;
char a[1000],b[1000];
cin>>k;
while(k--)
{ int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
cin>>b[i];
int sum=0;
for(int i=0;i<n;i++)
{
if(a[i]=='A'&&b[i]=='U'||a[i]=='G'&&b[i]=='C'||a[i]=='C'&&b[i]=='G'||a[i]=='T'&&b[i]=='A')
sum++;
}
if(n==sum)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
注意:for语句的运用和判断语句。