本文主要是介绍*DNA序列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。
给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。
知识点: 字符串
输入: 输入一个string型基因序列,和int型子串的长度
输出: 找出GC比例最高的字串
样例输入: AACTGTGCACGACCTGA 5
样例输出: GCACG
代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{string dna, temp;int n = 0, count = 0, max = 0;cin >> dna;cin >> n;if (n>dna.size()){return 0;}else{for (int i = 0; i <= dna.size() - n; ++i){for (int k = 0; k<n; ++k){if (dna.substr(i, n)[k] == 'G' || dna.substr(i, n)[k] == 'C'){count++;}}if (count>max)//这里如果改成大于等于,那么就默认输出最后一段字串{max = count;temp = dna.substr(i, n);}count = 0;}cout << temp << endl;}return 0;
}
这篇关于*DNA序列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!