#include<stdio.h>
#include<string.h>
#define N 1000010
char t(char c)
{
if(c=='A')
return 'U';
if(c=='G')
return 'C';
if(c=='C')
return 'G';
if(c=='T')
return 'A';
}
char dna[N],mrna[N];
int main()
{
int i,j,la,lb,f;
while(scanf("%s%s",dna,mrna)!=EOF)
{
la=strlen(dna);
lb=strlen(mrna);
f=1;
for(i=0;i<la;++i)
dna[i]=t(dna[i]);
if(la<lb)
f=0;
else
for(i=la-1,j=0;j<lb;--i,++j)
{
for(;i>=0&&(dna[i]!=mrna[j]);--i);
if(i==-1)
{
f=0;//表示匹配失败
break;
}
}
if(f)
printf("YES\n");
csu 1245: 信使核糖核酸转录后剪接 水题不多说
最新推荐文章于 2020-12-04 21:25:16 发布
这是一个简单的C语言程序,用于处理DNA序列到mRNA序列的转录匹配问题。程序读取输入的DNA和mRNA序列,通过t函数将DNA转化为其对应的mRNA,然后检查两者是否能正确配对。如果DNA序列比mRNA短或者无法找到匹配的对应位置,则输出"NO",否则输出"YES"。
订阅专栏 解锁全文
4229

被折叠的 条评论
为什么被折叠?



