Odpowiedź :
Odpowiedź:
napis = "TCTAACAGCCCCATATCGGG"
wzorzec = "CAT"
licznik = 0
for i in range(len(napis)-2):
print(napis[i:i+3])
if napis[i:i+3] == wzorzec:
licznik += 1
print("Wzorzec odnaleziony w", i, "iteracji")
print("Wzorzec odnaleziony", licznik, "razy")
Wyjaśnienie:
Algorytm naiwny przeszukuje po kolei napis szukając wzorca. Etap algorytmu zinterpretowałem jako iteracja pętli tzn. moment, w którym w końcu znajdujemy wzorzec
def ileWystapien(tekst, wzorzec):
licznik = 0
for i in range(0, len(tekst)):
j = 0;
while (j < len(wzorzec) and tekst[i + j] == wzorzec[j]):
j += 1
if (j > 0 and j == len(wzorzec)):
licznik += 1
return licznik
def ileWystapienTEST(tekst, wzorzec):
print('W tekscie sekwencja wystepuje ' + str(ileWystapien(tekst, wzorzec)) + ' razy')
tekst = 'TCTAACAGCCCCATATCGGG'
ileWystapienTEST(tekst, 'CAT')