char_count = 3 # Or whatever you want
if len(A) >= char_count and len(B) >= char_count :
for i in range(0, len(A) - char_count + 1):
some_chars = A[i:i+char_count]
if some_chars in B:
# Huray!
import difflib
def have_common_triplet(a, b):
matcher = difflib.SequenceMatcher(None, a, b)
return max(size for _,_,size in matcher.get_matching_blocks()) >= 3
def have_common_group(a, b, size=3):
first_indeces = range(len(a) - len(a) % size)
second_indeces = range(len(b) - len(b) % size)
seqs = {b[i:i+size] for i in second_indeces}
return any(a[i:i+size] in seqs for i in first_indeces)
这个怎么样?在
我不知道有什么内置函数,所以我想最简单的实现应该是这样的:
可以缩短为:
^{pr2}$您可以使用^{} 模块:
结果:
^{pr2}$但是请注意,
SequenceMatcher
比找到第一个公共的三元组要多得多,因此它可能比一个幼稚的方法花费更多的时间。更简单的解决方案是:它的性能应该更好,尤其是当匹配在字符串的开头时。在
相关问题 更多 >
编程相关推荐