題目介紹:輸入一段字符串DNA序列(含GATC)
輸入一個(gè)定長(zhǎng)N。
輸出含GC比例最多的連續(xù)子串,長(zhǎng)度為N。
創(chuàng)新互聯(lián)專注于黟縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供黟縣營(yíng)銷(xiāo)型網(wǎng)站建設(shè),黟縣網(wǎng)站制作、黟縣網(wǎng)頁(yè)設(shè)計(jì)、黟縣網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造黟縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供黟縣網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
思路:假設(shè)字符串序列長(zhǎng)度len為15.定長(zhǎng)為5。
則需要建一個(gè)長(zhǎng)度為11(len-N)的數(shù)組。
每一個(gè)元素為移該該位置起始 的N長(zhǎng)度的字符串中G,C的個(gè)數(shù)。
再遍歷count數(shù)組,值最大的是以該位置起始的長(zhǎng)度為N 的子串。
會(huì)用到的方法:
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));
}
}