题目介绍:输入一段字符串DNA序列(含GATC)
输入一个定长N。
输出含GC比例最多的连续子串,长度为N。
思路:假设字符串序列长度len为15.定长为5。
则需要建一个长度为11(len-N)的数组。
每一个元素为移该该位置起始 的N长度的字符串中G,C的个数。
再遍历count数组,值最大的是以该位置起始的长度为N 的子串。
会用到的方法:
string.charAt(index)
string.subString(begin,end)
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
String DNA=scanner.nextLine();
int len=DNA.length();
int N=scanner.nextInt();
int[] count=new int[len-N+1];
scanner.close();
for (int i = 0; i <= len-N; i++) {
for (int j = i; j < i+N; j++) {
if ('C'==DNA.charAt(j)||'G'==DNA.charAt(j)) {
count[i]+=1;
}
}
}
int max=count[0];
int k=0;
for (int i = 1; i < count.length; i++) {
if (count[i]>max) {
max=count[i];
k=i;
}
}
System.out.print(DNA.substring(k, k+N));
}
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。