top1编程
← 返回题目
题解

配对碱基链

1 条题解

  • 0
    @ 2026-8-5 14:38:11

    解题思路

    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