题解
配对碱基链
1 条题解
-
0
解题思路
DNA 由两条互补的碱基链组成,配对的规矩是:A 和 T 配对,G 和 C 配对。小童拿到一条链,要写出和它互补的另一条链。
可以想象成一场跳舞晚会:A 同学只和 T 同学跳,T 同学只和 A 同学跳;G 同学只和 C 同学跳,C 同学只和 G 同学跳。每换一个位置,舞伴就换一次。
所以对链上的每一个碱基:
- 看到
A,互补链上就写T; - 看到
T,互补链上就写A; - 看到
G,互补链上就写C; - 看到
C,互补链上就写G。
输入里只有大写字母
A、T、G、C,不含空格,所以用cin >> s读入。按顺序把每个字符的"舞伴"输出来就是互补链啦。参考代码
// 配对碱基链:A与T配对,G与C配对,输出互补链 #include <iostream> using namespace std; int main(){ string s; cin>>s; // 碱基链只含大写A T G C,不含空格 int n=s.size(); // n记录碱基链长度 for(int i=0;i<n;i++){ if(s[i]=='A') cout<<'T'; // A配T else if(s[i]=='T') cout<<'A';// T配A else if(s[i]=='G') cout<<'C';// G配C else cout<<'G'; // C配G } cout<<endl; return 0; }复杂度分析
- 时间复杂度:把碱基链从头到尾看一遍,长度是 n,所以是 O(n)。
- 空间复杂度:只用了一个字符串变量,额外空间是 O(1)。
- 看到
- 1