碱基配对问题java,c,c++

img


public class Main {

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int N;
    N = in.nextInt();
    int w = 0;
    int[] sum = new int[N];
    for (w = 0; w < N; w++) {
        sum[w] = 0;
        int n = 0;
        n = in.nextInt();
        String a = new String();
        String b = new String();
        a = in.next();
        b = in.next();
        char[] A = new char[n];
        char[] B = new char[n];
        char[] nextA = new char[n];
        boolean[] flag=new boolean[n];
        int i = 0;
        for (i = 0; i < n; i++) {
            flag[i]=true;
            A[i] = a.charAt(i);
            nextA[i] = exam(A[i]);
            B[i] = b.charAt(i);
            if(B[i]!=nextA[i]){ sum[w]++;flag[i]=false;}
        }//给A,B赋值,给next赋值
        int k=0;
        for(k=0;k<n;k++){
            if(!flag[k]){
                int j=k+1;
                for(j=k+1;j<n;j++){
                    if(!flag[j]&&B[k]==nextA[j]&&nextA[k]==B[j]){ sum[w]--;flag[j]=true;break;}
                }
            }
            flag[k]=true;
        }
    }

       for (w = 0; w < N; w++) {
            System.out.println(sum[w]);
        }

}
public static char exam(char a){//返回与A配对的字符
    switch(a){
        case('A'):
            return 'U';
        case('U'):
            return 'A';
        case('C'):
            return 'G';
        case('G'):
            return 'C';
        default:
            System.out.println("无此字符");
            return a;
    }
}

求教这个题怎么做呀,或者我这个哪里错了

你这个问题啊,咋说呢,对我程序员来说是不理解题目要干啥。我建议你最好用更简洁直接的方式表达一下题目。这样就会有人准确的给你解答了。