Python 计算字符串中的一个子序列

Python count a subsequence in a string

我的练习是计算二进制字符串中的子序列,但我不能使用计数方法,因为例如,如果我在字符串“10010000”中有子序列“00”,计数方法将return“3”但正确答案是“4”。

我试过这个:

def subseq_uguale(stringa,testo,lunghezza):
    f=0
    for i in range(len(testo)-lunghezza+1):
        confronta=''
        for j in range(lunghezza):
            confronta+=testo[i+j]
        if confronta==stringa:
            f+=1
    return f

其中'lunghezza'是子序列的长度,'testo'是序列,'stringa'是子序列。但是太费时间了! 我该如何解决?

试试这个

def subseq_uguale(stringa, testo):
    f=0
    for i in range(len(testo)+1-len(stringa)):
        if stringa==testo[i:i+len(stringa)]:
            f+=1
    return f