1135:配对碱基链
【题目描述】
脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。
【输入】
一个字符串,表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。字符串长度不超过255。
【输出】
一个只含有大写字母A、T、G、C的字符串,为与输入的碱基链互补的碱基链。
【输入样例】
ATATGGATGGTGTTTGGCTCTG
【输出样例】
TATACCTACCACAAACCGAGAC
代码如下:
方法1:用字符串
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
for(int i=0;i<s.size();i++)
{
if(s[i]=='A')//如果s[i]是A,s[i]替换为T
{
s[i]='T';
}
else if(s[i]=='G')//如果s[i]是G,s[i]替换为C
{
s[i]='C';
}
else if(s[i]=='T')//如果s[i]是T,s[i]替换为A
{
s[i]='A';
}
else if(s[i]=='C')//如果s[i]是C,s[i]替换为G
{
s[i]='G';
}
}
cout<<s;
return 0;
}

方法2:用字符数组
#include<bits/stdc++.h>
using namespace std;
int main()
{
char s[1000];
cin>>s;
for(int i=0;i<strlen(s);i++)
{
if(s[i]=='A')//如果s[i]是A,s[i]替换为T
{
s[i]='T';
}
else if(s[i]=='G')//如果s[i]是G,s[i]替换为C
{
s[i]='C';
}
else if(s[i]=='T')//如果s[i]是T,s[i]替换为A
{
s[i]='A';
}
else if(s[i]=='C')//如果s[i]是C,s[i]替换为G
{
s[i]='G';
}
}
cout<<s;
return 0;
}
再见,记得三连哦!!!
本文介绍如何使用两种方法实现DNA双螺旋结构中碱基互补配对的编程算法,通过字符串操作或字符数组来快速转换输入的单链碱基序列,得到其互补链。
1763





