найти повторное вхождение буквы в две строки, используя для l oop и функцию strip - PullRequest
0 голосов
/ 14 февраля 2020

Алгоритм: - Go через каждый символ в word1, один за другим. Если этот символ встречается в word2, то добавьте 1 к счетчику. Возврат общего количества после того, как вы закончите проходить символы.

>>>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 Ответ

1 голос
/ 14 февраля 2020

Он считает символ пробела как совпадение и возвращает на единицу больше, чем вы ожидаете.

Самое простое решение - проверить наличие пробела и пропустить его.

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'))
...