配对碱基链(C程序设计进阶第6周)

来源:互联网 发布:php设计模式有哪些 编辑:程序博客网 时间:2024/04/30 00:12

问题描述
脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。
输入
第一行是一个正整数n,表明共有n条要求解的碱基链。
以下共有n行,每行用一个字符串表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。每条碱基链的长度都不超过255。
输出
共有n行,每行为一个只含有大写字母A、T、G、C的字符串。分别为与输入的各碱基链互补的碱基链。
样例输入

5ATATGGATGGTGTTTGGCTCTGTCTCCGGTTGATTATATCTTGCGCTCTTGATTCGCATATTCTGCGTTTCGTTGCAATTAACGCACAACCTAGACTT

样例输出

TATACCTACCACAAACCGAGACAGAGGCCAACTAATATAGAACGCGAGAACTAAGCGTATAAGACGCAAAGCAACGTTAATTGCGTGTTGGATCTGAA

提示
源码屏蔽部分是使用vector构建二维数组的方法来做,本地运行正确,提交后提示compile error. 没有找到原因,日后再看
源码

#include <iostream>//#include <vector>//#include <istream>#include <string.h>using namespace std;int main(){    int n = 0;    cin >> n;    for (int i = 0; i < n; i++)    {        char a[256] = {0};        char b[256] = {0};        cin >> a;        for (int j = 0; j < strlen(a); j++)        {            switch(a[j])            {            case 'A':b[j] = 'T';break;            case 'T':b[j] = 'A';break;            case 'G':b[j] = 'C';break;            case 'C':b[j] = 'G';break;            default: break;            }        }        cout << b << endl;    }    return 0;}/*//此处使用vector构建二维数组的方法来做,本地运行正确,提交后提示compile error. 没有找到原因,日后再看int main(){    int n = 0;    cin >> n;    cin.get();//添加一条语句接收回车键    vector<vector<char> > a(n);    for (int i = 0; i < n; i++)    {        char c;        while(c = getchar())        {            if (c == '\n')            {                break;            }            a[i].push_back(c);        }    }    for (int i = 0; i < n; i++)    {        for (int j = 0; j < a[i].size(); j++)        {            switch(a[i][j])            {            case 'A':cout << 'T';break;            case 'T':cout << 'A';break;            case 'G':cout << 'C';break;            case 'C':cout << 'G';break;            default: break;            }        }        cout << endl;    }    return 0;}*//*//由于‘cin>>a’不能捕捉到回车键,这里使用getcharint main(){    char c;    while (c = getchar())    {        cout << c;        if (c == '\n')        {            break;        }    }    return 0;}*/
0 0
原创粉丝点击