题解 | #DNA序列#

DNA序列

https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a

#include <stdio.h>
#include <string.h>
#define max(x,y) x>y?x:y

int ComputeGCNum(char str[])//计算有多少个GC
{
    int cntGC=0;
    for(int i=0;i<strlen(str);i++)
    {
        if(str[i]=='G'||str[i]=='C')
        {
            cntGC++;
        }
    }
    return cntGC;
}

int main() {
    char str[1009]={0};
    scanf("%s",str);
    int lenStr=strlen(str);
    int n=0;
    scanf("%d",&n);
    if(n>=lenStr)//如果N太大超过原字符长度,则直接输出原字符串
    {
        printf("%s",str);
        return 0;
    }
    char strN[1009]={0};
    char strMAXGC[1009]={0};
    int pos=0;
    int maxGC=0;
    while((pos+n)<=lenStr)//用pos做头位置,用‘\0’去截取N长度的子字符串。
    {
        strcpy(strN,&str[pos]);
        strN[n]='\0';
        int cnttmp=ComputeGCNum(strN);
        if(maxGC<cnttmp)//取多GC的子串存入最大子串变量。
        {
            maxGC=cnttmp;
            strcpy(strMAXGC,strN);
        }
        pos++;                
    }
    printf("%s",strMAXGC);//输出
    return 0;


}

全部评论

相关推荐

点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-30 11:32
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务