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