Comparação parcial de strings

Oi, gente. Estou começando agora a usar o Java e precisava de ajuda para conseguir escrever meu raciocínio.
Eu quero fazer um programa que encontre um padrão dentro de um texto, possibilitando no máximo “d” diferenças entre eles e retorne a posição em que a igualdade se encontra no texto. Acho que o nome desse método é BLAST(Basic Local Alignment Search Tool).
Por exemplo:
Texto T="A T G A T A T T T G T C G G C A T T A C"
Padrão P="A T A T"
Para d=0, ele retornaria: 3
Para d=1, ele retornaria: 5 (+ os valores de d=0)
Para d=2, ele retornaria: 0, 1, 7, 13 e 15 (+ os valores de d=1 e d=0)

A minha ideia era percorrer as strins, e quando ele encontrasse uma igualdade, ele passasse pra string ao lado. Se a do lado também fosse igual, ele passa pra letra seguinte e assim por diante, ate ele chegar ao final de P, retornando a posição da igualdade.
Se as letras forem diferentes, ele diminui o valor de “d”, até chegar a 0.

Eu não sei como posso escrever essa ideia. Eu não sei como devo colocar o return para ele indicar a posição certa, mas o que eu consegui fazer ficou assim:

public static void main(String[] args){
      String cadeiaDNA="ATGATATTTGTCGGCATTAC";
      String P="ATAT";
      
      int d=1;
      int x = BuscaPadrao(cadeiaDNA,P,d);
      
      System.out.println(x);         
}

 static int BuscaPadrao ( String cadeiaDNA, String P, int d ){
    int s;
        while (d>=0){
            for (int i=0; i< cadeiaDNA.length(); ){
                for (int j=0; j< P.length();j++){
                    String letraP=String.valueOf(P.charAt(j));
                    String letraDNA=String.valueOf(cadeiaDNA.charAt(i));
                    if (letraP.equals(letraDNA)){
                        i++;
                        s=i;
                    }
                    else {
                        d--;
                        i++;
                    } 
                }
            }
        }
        return s;
    }

Se alguém puder me ajudar, eu agradeço.
Valeu.

Alguém pode me ajudar? To desesperado.