题解 | #DNA序列#
DNA序列
https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
#include <iostream>
#include <iterator>
#include <string>
using namespace std;
int main() {
string str;
int num;
cin>>str>>num;
int len = str.size();
double cgnum = 0;
double cgratio = 0;
for(int i=0;i<len;i++){
if(str[i]=='C'||str[i]=='G'){
cgnum++;
}
}
cgratio = cgnum/num;
double max = cgratio;
int zuo = 0;
int you = num-1;
for(int i = num;i<len;i++){
int j = i-num;
if(str[i]=='C'||str[i]=='G'){
cgnum++;
}
if(str[j]=='C'||str[j]=='G'){
cgnum--;
}
cgratio = cgnum/num;
if(cgratio>max){
max = cgratio;
zuo = j+1;
you = i;
}
}
for(int i = zuo;i<num+zuo;i++){
cout<<str[i];
}
}
// 64 位输出请用 printf("%lld")