题解 | #DNA序列#

DNA序列

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

//字符串以数组存储,算子串的CG个数并存储至数组,数组长度为总长-子串长度+1;然后找到比例最高的子串,有多个输出第一个子串(注意这里逻辑)
#include <stdio.h>
#include <string.h>

int main() {
    char str[1001];
    int n = 0;
    int len = 0;
    //int cnt_all = 0;
    int num[1001] = {0};
    int flag = 0;
    scanf("%s", str);
    scanf("%d", &n);
    len = strlen(str);
    /*
    for(int i = 0; i<len; i++)//算总的CG个数
    {
        if(str[i] == 'C' || str[i] == 'G')
        {
            cnt_all++;
        }
    }
    */
    for(int i = 0; i<len-n+1; i++) //算子串中的CG个数
    {
        for(int j = 0; j<n; j++)
        {
            if(str[i+j] == 'C' || str[i+j] == 'G')
            {
                num[i]++;
            }
        }   
    }
    for(int i = 0; i<len-n;i++) //找到比例最高的子串,有多个输出第一个子串
    {
        if(num[flag] < num[i+1])
        {
            flag = i+1;
        }    
                 
    }
    for(int i = flag; i<flag+n; i++)
    {
        printf("%C",str[i]);
    }
    printf("\n");
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务