计算字符串中的子串

时间:2012-09-06 16:44:39

标签: python-3.x

让我们假设我有2个字符串

M = "sses"
N = "assesses"

我必须计算字符串M出现在字符串N中的次数

如果需要,我不允许使用任何导入或方法,只需循环和范围()。

M = "sses"
N = "assesses"
counter = 0
if M in N:
  counter +=1
print(counter)

这还不够好,我需要循环来通过N并计算所有M存在 在这种情况下,它是2。

1 个答案:

答案 0 :(得分:1)

def count(M, N):
    i = 0
    count = 0
    while True:
        try:
            i = N.index(M, i)+1
            count += 1
        except ValueError:
            break
    return count

或没有str.index的单行:

def count(M, N):
    return sum(N[i:i+len(M)]==M for i in range(len(N)-len(M)+1))

不使用sum函数:

def count(M, N):
    count = 0
    for i in range(len(N)-len(M)+1):
        if N[i:i+len(M)] == M:
            count += 1
    return count