【发布时间】:2020-06-18 18:21:56
【问题描述】:
我正在解决一个谜,我有几个大的数字字符串切片。最初它们似乎是随机的,但通过一些频率分析我了解到它们都是一个大字符串的切片。
问题是这些切片可能包含大字符串的单独部分,但不包含有关它们所在位置的信息,甚至可能包含单独的子字符串。例如:
text: 0102030405060708091011121314151617181920
slice 1: 010203041516171819
slice 2: 030405060717181920
slice 3: 060708091011121314
slice 4: 040506071213141516
注意如何通过滑动切片来重建原始文本:
slice 1: 01020304 1516171819
slice 2: 0304050607 17181920
slice 3: 060708091011121314
slice 4: 04050607 1213141516
由于原始文本可能有数百甚至数千位数字,因此手动操作非常困难且耗时。我有 80 个切片的集合,它们应该生成一个合并的字符串,这是我没有的原始文本。
我搜索了一些字符串匹配算法,例如最长公共子字符串,但它们不包括拆分切片以尝试匹配。此外,diff 算法通常不支持一次合并多个字符串,并且两个切片包含的共同点太少而无法使用,通常会给出错误的匹配,最终会失败。
【问题讨论】:
标签: python python-3.x merge pattern-matching string-matching