题解 | #DNA序列#
DNA序列
https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
#include <stdio.h> #include <string.h> int main() { char str[1000]; int n; scanf("%s",str); scanf("%d",&n); int len = strlen(str); float a[1000] = {0}; for (int i = 0; i<len-n;i++) { float t = 0; for (int j = 0; j<n; j++) { if (str[i+j] == 'C' || str[i+j] == 'G') { t++; } } a[i] = t/n; // printf("%f\n",a[i]); } float max = 0; int c=0; for (int i = len-n-1; i>=0; i--) {//要找第一个 反过来循环就行 max = (a[i]<max)?max:a[i]; c = (a[i]<max)?c:i; } for (int i = 0; i<n; i++) { printf("%c",str[c+i]); } return 0; }