使用 for 循环和 strip 函数查找两个字符串中字母的重新出现

finding re occurrence of letter in two string, using for loop and strip function

算法: - 逐一检查 word1 中的每个字符。如果这个字符出现在 word2 中,则将计数加 1。 Return 完成字符后的总计数。

>>>count_common_occurrences('bob y', 'bobbette z')
    3
>>>count_common_occurrences('bobbette z', 'bob y')
    4

这是我的代码

def count_common_occurrences(word1, word2):
    count = 0 
    for i in word1.strip():
        if i in word2.strip():
            count = count + 1
    return count

我得到的结果总是比例子大1,我开始怀疑函数计数space,所以我使用了strip,但结果还是一样。我不知道是什么导致函数比预期的多计数

它将 space 个字符计为一个匹配项,因此它 returns 比您预期的多一个。

最简单的修复方法是检查 space 字符并跳过它。

def count_common_occurrences(word1, word2):
    count = 0 
    for i in word1.strip():
        if i != ' ':
            if i in word2.strip():
                count = count + 1
    return count

print(count_common_occurrences('bob y', 'bobbette z'))
print(count_common_occurrences('bobbette z', 'bob y'))