还是只会用if else、 for<img alt="鄙视" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/despise.gif" />
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n,idxs,idxe,m;//idxs为最大CG比对应子序列第一个字符下标,idxe为子序列最后一个字符下标;
float maxstr=0; //CG-ratio
string s;
cin>>s;//输入DNA序列
cin>>n;//最小子序列
idxs=0;idxe=n-1;
for(int i=n;i<s.size();++i)//子序列长度:n到s.size()
{
m=0;
for(int j=0,k=i-1;j<=s.size()-i;++j,++k)
{
if(j==0)
{
for(int l=0;l<i;++l)
if(s[l]=='C'||s[l]=='G')
m++;
}
else
{
if(s[j-1]!='C'&&s[j-1]!='G'&&(s[k]=='C'||s[k]=='G'))
{
m++;
if(m/(i+0.0)>maxstr)
{
maxstr=m/(i+0.0);
idxs=j;
idxe=k;
}
}
else if((s[j-1]=='C'||s[j-1]=='G')&&s[k]!='C'&&s[k]!='G')
m--;
}
}
}
for(int i=idxs;i<=idxe;++i)
cout<<s[i];
//system("pause");
return 0;
}