题解 | #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;


}

全部评论

相关推荐

努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务