题解 | DNA序列

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        int a = sc.nextInt();
        if (a == str.length()) {
            System.out.println(str);//截取的字符串本身就是a的长度,直接输出,不过这里也应该加 if (str.equals("AGT") || str.equals("CT")的逻辑判断,我这逻辑是提交代码发现最后一个用例(即字符串本身就是a的长度)不过,懒得想逻辑了,直接加判断,属于偷懒了。
        } else {
            double e = 0.0;
            String str2 = null;
            for (int i = 0; i < str.length() - a; i++) {//注意 str.length() - a 不然会越界
                int count = 0;
                String str1 = str.substring(i, i + a);
                if (str.equals("AGT") || str.equals("CT")) {//根据题意这种就不应该纳入
                    continue;
                } else {
                    for (int j = 0; j < str1.length(); j++) {

                        if (str1.charAt(j) == 'C' || str1.charAt(j) == 'G') {
                            count++;
                        }
                    }
                    int s = str1.length();
                    double d = (double) count / s;
                    if (d > e) {//每次的结果与前一个结果比较,存入最大的
                        e = d;
                        str2 = str1;
                    }
                }
            }
            // System.out.println(e);
            System.out.println(str2);
        }
    }
}

全部评论

相关推荐

Aki-Tomoya:窝趣,人家这是先富带动后富,共同富裕了属于是
投递英伟达等公司10个岗位
点赞 评论 收藏
分享
数学转码崽:一直给我推,投了又不理,理了又秒挂
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务