python - 两个序列之间的公共字符串
问题描述
我有两个与同一主题相关的问题。我模拟了 100 个元素的 16000 个序列,没有重复,数字在 1-4 之间,例如:124232143214223142314...
进行这些模拟是为了查看随机生成的序列和预定义序列之间的最长共同序列是什么。参与者也被要求这样做,以生成他们之前在不知不觉中学习的序列。
我想在两个序列之间找到所有共同的三元组。因此,如果我们有序列 A:12342134213421313242... 和序列 B:21342134123214。它必须计算所有共同的三元组,包括重复:213、134、342、213 等。
解决方案
尝试这样的事情:
import itertools
x = "12342134213421313242123"
y = "213421341232123"
m = ["1","2","3","4"]
#dict of triplet vs [no of repetitions in x, in y]
z={k: [x.count(k), y.count(k)] for k in ["".join(el) for el in [a+b+c for a in m for b in m for c in m if a!=b and b!=c and a!=c]]}
#total number of common triplets:
z_no = sum([x.count(k) if x.count(k)>0 and y.count(k)>0 else 0 for k in ["".join(el) for el in [a+b+c for a in m for b in m for c in m if a!=b and b!=c and a!=c]]])
#broken down by triplet
z_final = {k: v[0] for k,v in z.items() if v[0]>0 and v[1]>0}
推荐阅读
- android-edittext - TextView 添加一个变量字符串并附加另一个
- sql - 如何将两个 Select 语句组合成一个 SQL 语句
- vba - 从 Range 对象中删除具有重复值的单元格
- excel - 使用间接公式进行数据验证
- c# - 如何用泛型类型的子类初始化泛型属性?
- python - Python 3:我试图通过使用 np.array 遍历所有像素来找到图像中的所有绿色像素,但无法绕过索引错误
- ios - 更新后的 Unity3d FireBase SDK - 在 iO 上找不到兼容版本错误
- javascript - Nuxt auth-module 谷歌登录承诺成功
- python - 转换多个字符串行并将每行读取为整数
- php - 如何以所需的顺序从查询中获取参数?