首页 > 解决方案 > python 3.7中的字符串

问题描述

如何计算字符串中的子字符串?

示例:findSubstrings("foxcatfox","fox") # 应该返回 2

标签: python-3.x

解决方案


如果递归确实是必须的,你可以先尝试划分问题。

假设你在 position 找到了匹配的子串i,那么子串的总数是1 + findSub(string[i+1:], sub),所以你可以这样写:

def findSubstringsRecursive(string, substring):
    counter = 0
    substringLength = len(substring)
    for i in range(len(string)):
        if string[i] == substring[0]:
            end = i + substringLength
            sub1 = string[i:end]
            if substring == sub1:
                return 1 + findSubstringsRecursive(string[i+1:], substring)
    return 0

推荐阅读