Per ora sono riuscito a scrivere questo algoritmo. Ma credo che sia "forza bruta" no?
Se mi sapete trovare qualcosa di più efficiente ve ne sarei grato XD.

Codice PHP:
public int match(bool[]tofnd,int startint end){
            
int j=0//j è il puntatore della sottosequenza
            
int i=start//i è il puntatore della sequenza
            
int posizione 0//posizione del match
            
bool continua true//per continuare il ciclo
            
bool trovato false//flag che indica se ho rilavato la sottosequenza
            
while (continua)
            {
                if (
bit[i] == tofnd[j])
                {
                    if (
== 0posizione i;
                    if (
tofnd.Length 1)
                    {
                        
j++;
                    }
                    else
                    {
                        
continua false;
                        
trovato true;
                    }
                    
i++;
                }
                else
                {
                    if (
!= 0) { -= j0; }
                    if (
== end tofnd.Lengthcontinua false;
                    
i++;
                }
            }
            if (
trovato) return posizione;
            return -
1;
        } 
bit[] è definito in istanza.
sono di tipo bool[] i vettori in questione poichè come già detto lavoro con i bit.