题解 | #DNA序列#

DNA序列

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

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

int main() {
    string s;
    float n,len,max_r = -1;
    cin >> s;
    cin >> n;
    len = s.size();
    int num = len-n+1;
    vector<float> lens(num,0);

    for(int i=0; i<num; i++){
        float tmp = 0;
        for(int j=i; j<i+n; j++){
            if(s[j] == 'C' || s[j] == 'G'){
                tmp++;
            }
        }
        float res = tmp/n;
        max_r = max(res,max_r);
        lens[i] = res;
        // cout << "res" << res << endl;
        // cout << "max_r" << max_r << endl;
    }

    for(int i=0; i<num; i++){
        // cout << lens[i] << endl;
        if(lens[i] == max_r){
            cout << s.substr(i,n) << endl;
            return 0;
        }
    }

    return 0;
}
// 64 位输出请用 printf("%lld")

本题思路比较简单,但是需要注意设计到小数的部分一定要用浮点数而不是整数。

全部评论

相关推荐

10-28 14:42
门头沟学院 Java
watermelon1124:因为嵌入式炸了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务