初始化两个数组,一个序列数值数组K[N],一个序列和数组SUM[N],先遍历一边序列,为C或者G则K[i]为1,否则则置为0,然后计算连续M个K[I]之和存入SUM就行。
import java.util.Scanner; public class DNAsquence { public static void main(String args[]){ Scanner input=new Scanner(System.in); String s=input.next(); int n=input.nextInt(); int k[]=new int[s.length()]; int sum[]=new int[s.length()]; for(int i=0;i<k.length;i++){ k[i]=0; sum[i]=0; } for(int i=0;i<s.length();i++){ if(s.charAt(i)=='C'||s.charAt(i)=='G')k[i]=1; } for(int i=0;i<k.length-n;i++){ for(int j=0;j<n;j++){ sum[i]=sum[i]+k[i+j]; } } int max=0; int maxindex=0; for(int i=0;i<k.length-n;i++){ if(sum[i]>max){ max=sum[i]; maxindex=i; } } System.out.println(s.substring(maxindex, maxindex+n)); } }
华为OJ:DNA序列
时间: 2024-11-09 13:02:49