连接时比较字符串
Compare strings when concatenated
我正在比较 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"))
除了暴力法,我无法创建实用且快速的算法。请帮忙。
IIUC:
def com_words(str1, str2):
return sum([word in str1 for word in str2.split()])
print(com_words("BOSTBREAD", " BOST BROWN BREAD"))
这样可以吗?
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"))
我正在比较 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"))
除了暴力法,我无法创建实用且快速的算法。请帮忙。
IIUC:
def com_words(str1, str2):
return sum([word in str1 for word in str2.split()])
print(com_words("BOSTBREAD", " BOST BROWN BREAD"))
这样可以吗?
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"))