我试图让一个代码返回两个字符串之间的最长公共子字符串的长度,并意识到插入部分函数返回的结果几乎相同。我说得对吗?
a = input()
b = input()
print (len(set(a).intersection(b)))
答案 0 :(得分:0)
否,因为您的单词的交集会将单个字母分解为一个列表元素。例如,
a = 'abcd'
b = 'dcba'
成为
a = ['a', 'b', 'c', 'd']
b = ['d', 'c', 'b', 'a']
相交的长度将为4,但这不适用于您的情况,因为'abcd'和'dcba'的公共子字符串长度均不超过长度1。
此外,在单词上使用set会删除单词中所有重复的字母,这也会使搜索常见的子字符串变得混乱。
您需要做的是将两个单词拆分为所有可能的子字符串的列表,就像在post中所做的那样。然后,您可以对这些列表进行交集并采用最大长度的元素。