Ignore:
Timestamp:
08/12/14 21:45:18 (10 years ago)
Author:
rkrimmel
Message:

Found last bug in containsPattern

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequence.java

    r1662 r1665  
    4545 
    4646        //Recursive check if sequence contains pattern at position i 
    47         private boolean matches(int i, int[] p1, int[] p2 ,int ip1,int ip2) { 
     47        private boolean matches(int i, int[] p1, int[] p2 ,int ip1,int ip2,boolean jumped1,boolean jumped2) { 
    4848                 
    4949                if(p1.length==ip1) { 
     
    5656                        return false; 
    5757                } 
     58                if((p1[ip1]==sequence[i]||p2[ip2]==sequence[i]) && jumped1) { 
     59                        return matches(i+1,p1,p2,ip1+1,ip2+2,false,false); 
     60                } 
     61                if((p1[ip1]==sequence[i]||p2[ip2]==sequence[i]) && jumped2) { 
     62                        return matches(i+1,p1,p2,ip1+2,ip2+1,false,false); 
     63                } 
    5864                if(p1[ip1]==sequence[i]||p2[ip2]==sequence[i]) { 
    59                         return matches(i+1,p1,p2,ip1+1,ip2+1); 
     65                        return matches(i+1,p1,p2,ip1+1,ip2+1,false,false); 
    6066                } 
    6167                if(p1[ip1]==-1) { 
    62                         return matches(i,p1,p2,ip1+1,ip2); 
     68                        return matches(i,p1,p2,ip1+1,ip2,true,false); 
    6369                } 
    6470                if(p2[ip2]==-1) { 
    65                         return matches(i,p1,p2,ip1,ip2+1); 
     71                        return matches(i,p1,p2,ip1,ip2+1,false,true); 
    6672                } 
     73         
    6774                return false; 
    6875        } 
     
    7683 
    7784                while (i < sequence.length ) { 
    78                         if(matches(i,pat1,pat2,0,0)) { 
     85                        if(matches(i,pat1,pat2,0,0,false,false)) { 
    7986                                result.add(i); 
    8087                        } 
Note: See TracChangeset for help on using the changeset viewer.