题解 | #DNA序列#
DNA序列
https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
暴力解法:滑动窗口,依次遍历字符串,并记录CG比例最高的字串即可。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String str = in.next();
int len = in.nextInt();
//暴力解法:遍历 str 得到它的不同的长度为 len 的子串
//并记录这些字串的比例,最终输出比例最高,并且最靠前的子串即可。
int index1 = 0,index2 = 0,maxLen = 0;
float maxRatio = 0;
for(int i=0;i<str.length()-len+1;i++){ //注意此处的 i 的取值范围
int count = 0; //记录CG出现的次数
for(int j = i;j < i+len;j++){
if(str.charAt(j) == 'C' || str.charAt(j) == 'G') count++;
}
//将当前的最大的比例替换,并记录索引,由于需要比当前的比例大,所以相等的情况就不会记录下来了
if((float)count/len > maxRatio){
maxRatio = (float)count/len;
index1 = i;
index2 = i+len-1;
}
}
System.out.println(str.substring(index1,index2 + 1));
}
}
}
查看17道真题和解析
文远知行公司福利 518人发布