Я пытался закодировать алгоритм сопоставления с образцом. Это наивно только с небольшой оптимизацией. Но Python показывает «Строковые индексы должны быть целыми числами». Переменная l oop, конечно, является целым числом, но я до сих пор не могу понять проблему! Это не первый мой раз в Python, но я никогда не сталкивался с такой неоднозначностью раньше. Вот мой код, кто-нибудь может мне помочь, пожалуйста?
def check(text,pattern):
n=-1
for i in range(len(pattern)):
if pattern[0]==text[i]:
n=i
break
if pattern==text:
return [1,n]
else:
return [0,n]
shifts=[]
def match(pattern,text):
i=0
while i<(len(text)-len(pattern)+1):
if text[i]==pattern[0]:
#print(i,i+len(pattern),text[i,i+5])
j=check(text[i,i+len(pattern)],pattern)
if j[0]==1:
shifts.append(i)
print('Match | Shift with',shifts[-1])
if j[-1]!=-1:
i=j[-1]
else:
i=i+len(pattern)
else:
i+=1