Python的TypeError:字符串索引必须是整数

我正在尝试编写模式匹配算法。天真只有一点优化。但是Python显示“字符串索引必须是整数”。当然,循环变量是一个整数,但是我仍然无法弄清楚这个问题!这不是我第一次使用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
评论