首页 > 解决方案 > 朴素模式匹配 - 如何计算出现次数

问题描述

我在 python 中使用朴素的模式匹配函数来查找文本 t 中 p 的模式,输出返回文本 t 中 p 的出现。

但我无法编写一个计算出现次数的函数。

    def naive(p, t):
        occurrences = []
        for i in range(len(t) - len(p) + 1):  # loop over alignments
            match = True
            for j in range(len(p)):  # loop over characters for the pattern
                if t[i+j] != p[j]:  # compare characters in the inner loop
                    match = False
                    break
            if match:
                occurrences.append(i)  # all chars matched; record
        return occurrences
    t = ('TATACGAFGATAGAFAGAYHTATATAHHGTATATATATATATTA')
    p = ('TA')
    naive(p,t)
    print(naive(p,t))

输出为 [0, 2, 10, 20, 22, 24, 29, 31, 33, 35, 37, 39, 42]

我想计算像 13 这样的出现次数

标签: pythoncount

解决方案


使用 OS walk 后,它有助于调用目录和文件。然后使用提供所需计数的 print(len(naive(p,t)))


推荐阅读