先确定L长度的字符串,长度为n的子串一共(L-n+1)个,定义一个函数计算每个子串C和G的百分比(也可以不计算百分比,直接返回CG的个数),记录下CG-ratio最高时对应的子字符串,打印出来。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.next();
            int n = Integer.parseInt(sc.next());
            float max =0;
            //子字符串个数
            int l = str.length()-n+1;
            String[] s = new String[l];
            String str1 = "1";
            for(int i=0; i<l; i++){
                s[i] = str.substring(i,i+n);
                float b = cg_ratio(n,s[i]);
                if(b>max){
                    max = b;
                    str1 = s[i];
                }
            }
            System.out.println(str1);
        }
    }
    public static float cg_ratio(int n, String s){
        float cg = 0;
        for(char ch:s.toCharArray()){
            if(ch=='C') cg++;
            if(ch=='G') cg++;
            else cg += 0;
        }
        return cg/n;
    }
}