Salve, dovrei svolgere questo esercizio sugli scambi adiacenti, ma sicuramente dimentico qualche controllo da fare perchè il risultato mi viene errato..
Spiegazione dell'esempio
La parola "questore" appare all'interno del testo tre volte. La prima volta alla posizione 2, la parola "uqetsore" in cui sono presenti 3 scambi. La seconda volta alla posizione 43, la parola "qusetoer", in cui sono presenti 2 scambi. L'ultima volta alla posizione 64, la parola "questore" in cui non sono presenti scambi.
io avevo fatto questo metodo..
void metodo(string parola, string frase)
{
int i=0;
int sposto=0;
int conto=1;
string nuovo;
while(sposto+parola.length()-1!=frase.length()-1)
{
nuovo=frase.substr(sposto,parola.length());
for(int k=0; k<nuovo.length(); k++)
{
if(parola[k]==nuovo[k])
{
conto++;
nuovo[k]='-';
}
else if(k==0 && parola[k]==nuovo[k+1])
{
nuovo[k+1]='-';
conto++;
}
else if(k>0 && k<=nuovo.length()-2 && parola[k]==nuovo[k+1] || parola[k]==nuovo[k-1])
{
if(parola[k]==nuovo[k+1])
nuovo[k+1]='-';
else
nuovo[k-1]='-';
conto++;
}
else if(k==nuovo.length()-1 && parola[k]==nuovo[k-1] )
{
nuovo[k-1]='-';
conto++;
}
}
if(parola.length()==conto)
{
cout<<sposto<<" ";
}
sposto++;
conto=1;
}
}