re - 查找最长的重复子序列
问题描述
我有一个随机字符串,例如:
a = "aabcaaabbccccdabbbbbc"
我想找出最长的重复子串及其长度。在这种情况下,答案应该是“bbbbb”和5。什么是正则表达式方式?
解决方案
import re
a = "aabcaaabbccccdabbbbbc"
pattern = re.compile(r'(\w)(\1)+')
max_pattern_len, max_pattern = 0, ''
for match in pattern.finditer(a):
m = match.group()
if len(m) > max_pattern_len:
max_pattern_len = len(m)
max_pattern = m
print(max_pattern_len, max_pattern)
输出:
(5, 'bbbbb')
推荐阅读
- r - 每次修改源文件时,如何防止 R.cache 包的 memoizedCall() 更新缓存?
- c++ - 不能 push_back 进入向量 - 不给出过载错误
- identityserver4 - 从网络内部登录到 Identity Server
- c# - 在 ItemControl WPF C# 中异步加载用户控件
- performance - 深度学习 TensorFlow 模型能否在 Python 中进行训练、腌制并用于 C++ 中的预测?
- python - Pytorch 从 Dataloader 加载两个图像
- sql - 按商店(数量),列出客户访问商店的最大次数
- python - 获取循环Python之外的值列表
- xero-api - Xero 开发者帐户不显示组织
- sharepoint-2016 - SharePoint PnP - 将字段添加到默认视图