先确定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;
}
}


京公网安备 11010502036488号