题解 | #DNA序列#

DNA序列

https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a

类似滑动窗口的思路,统计每个窗口内的比值,记录下比值最大的窗口的起始位置。
#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    getline(cin, s, '\n');
    int N = 0;
    cin >> N;
    int first = 0;
    int last = first + N - 1;
    int ratio = 0;
    int flag = 0;
    int size = 0;
    while (last <= s.size() - 1) {
        string temp = s.substr(first, N);
        for (int i = 0; i < N; i++) {
            if (temp[i] == 'G' || temp[i] == 'C') {
                size++;
            }
        }
        if (size > ratio) {
            ratio = size;
            flag = first;
        }
        first++;
        last = first + N - 1;
        size = 0;
    }
    string res = s.substr(flag, N);
    cout << res << endl;
    return 0;
}


全部评论

相关推荐

07-25 10:17
仰恩大学 营销
bg双非,被挂了
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
allin秋招的单身...:我投过这家 上来就发个设计图给我,让我做好发到他邮箱
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务