All pastes #931853 Raw Edit

Something

public text v1 · immutable
·published 2008-03-07 11:34 UTC
rendered paste body
   public void nussinov(){
        int total_max;
		int current_max;
		int j;
        int len = sequence.length();
		int index;
		for(int k = 5; k<len; k++){
			for(int i=0; i<len-k; i++){
				j = i+k;
				total_max = 0;
				index = len;
				
				int var2, var3;	
				total_max = OPT[i][j-1];

				current_max = valid(i,j) + OPT[i+1][j-1];
				if(j-i < 4 && current_max > total_max)
					index = i;
					
					for(int t=i; t<=j; t++){
						if(t < j-4 && valid(t,j) == 1){
							try { 	
								var2 = OPT[i][t-1];
							} catch (ArrayIndexOutOfBoundsException e) {
								var2 = 0;
							}

							try { 	
								var3 = OPT[t+1][j-1];
							} catch (ArrayIndexOutOfBoundsException e) {
								var3 = 0;
							}

							current_max = var2+var3+1;
							if(current_max > total_max){
								total_max = current_max;
								index = t;
							}
						}
					OPT[i][j] = total_max;
					
					if(index < len)
						TRC2[j][i] = index;
					else
						TRC2[j][i] = -1;
				}
			}
		}
   }

public void backtrack(int i, int j){
   int k;

   k = TRC2[j][i];
   if(k != -1)  {
	
     TRC[k] = "("; 
     TRC[j] = ")";
	System.out.print(" p ");
     if( 4 < (j-1)-(k+1) )
       backtrack(k+1,j-1);
     if (4 < k-1-i  )
       backtrack(i,k-1);
   } 
   else{ // k==-1

     if( 4 < j-1-i )
        backtrack(i,j-1);
   }  

}