華為oj DNA序列
阿新 • • 發佈:2019-02-19
很簡單直接找哪5個連續的字串中GC出現的次數高就行
#include<iostream> using namespace std; int main() { char in[100] ; int start = 0, end = 0, num, len, finalstart, finalend, tempsum = 0, sum = 0; gets_s(in); len = strlen(in); cin >> num; end = num - 1; for (; end<len; start++, end++) { for (int i = start; i <= end; i++) { if (in[i] == 'G' || in[i] == 'C') { tempsum++; } } if (tempsum>sum) { sum = tempsum; finalstart = start; finalend = end; } tempsum = 0; } for (int i = finalstart; i <= finalend; i++) { cout << in[i]; } cout << endl; return 0; }
結論:start和end的距離始終是5,所以這種解法的時間複雜度是O(n)