算法竞赛入门经典java版程序CH3 UVa1368

来源:互联网 发布:差分演化算法及其应用 编辑:程序博客网 时间:2024/05/16 15:59
package ch3.uva1368;import java.util.*;//UVa1368class Main {public static char[] gene={'A','C','G','T'};public static void print(int[][] arr){for(int i=0;i<arr.length;i++){for(int j=0;j<arr[i].length;j++){System.out.print(arr[i][j]+" ");}System.out.println();}}public static void main(String[] args) {int T, m, n;Scanner cin = new Scanner(System.in);T = cin.nextInt();while (T-- > 0) {m = cin.nextInt();//行n = cin.nextInt();//字串长cin.nextLine();////System.out.println("m="+m+" n="+n);int[][] arr=new int[4][n];//A,C,G,Tint[] count=new int[n];//存值 while(m-->0){    String line=cin.nextLine();    //System.out.println(line);    for(int i=0;i<line.length();i++){    char c=line.charAt(i);    if(c=='A'){    arr[0][i]+=1;    }else if(c=='C'){    arr[1][i]+=1;    }else if(c=='G'){    arr[2][i]+=1;    }else{    arr[3][i]+=1;    }    }  }//print(arr);int sum=0;for(int i=0;i<n;i++){int max=-1;int index=0;for(int j=0;j<4;j++){    if(max<arr[j][i]&&arr[j][i]!=0){    max=arr[j][i];    index=j;    }}for(int k=0;k<4;k++){if(k!=index&&arr[k][i]!=0){  count[i]=count[i]+arr[k][i];}}System.out.print(gene[index]);sum=sum+count[i];}System.out.println("");System.out.println(sum);}}}/*35 8TATGATACTAAGCTACAAAGATCCTGAGATACTAAGATGT4 10ACGTACGTACCCGTACGTAGGCGTACGTATTCGTACGTAA6 10ATGTTACCATAAGTTACGATAACAAAGCAAAAGTTACCTTAAGTTACCAATACTTACCAASample OutputTAAGATAC7ACGTACGTAA6AAGTTACCAA12 */

阅读全文
0 0
原创粉丝点击