Сравните строки при соединении - PullRequest
0 голосов
/ 12 марта 2019

Я сравниваю 2 строки ввода.Это просто достигается с помощью однострочной функции, которую я написал как:

from itertools import product

def com_words(str1, str2):
    return sum([i==j for i,j in product(str1.split(), str2.split())])

print(com_words("BOST BREAD", "BOST BROWN BREAD"))

Однако я также хочу провести сравнение, похожее на человека, когда два слова объединены.Например, приведенный ниже код приводит к выводу как НОЛЬ, а я хочу выводить как ДВУХ:

print(com_words("BOSTBREAD", " BOST BROWN BREAD"))

За исключением метода грубой силы, я не могу создать практичный и быстрый алгоритм.Pl help.

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Будет ли это делать?

from itertools import product

def com_words(str1, str2):
    return sum([(i in j) or (j in i) for i,j in product(str1.split(), str2.split())])

print(com_words("BOSTBREAD", "BOST BROWN BREAD"))
1 голос
/ 12 марта 2019

IIUC:

def com_words(str1, str2):
    return sum([word in str1 for word in str2.split()])


print(com_words("BOSTBREAD", " BOST BROWN BREAD"))
...