python获取指定字符串中重复模式最高的字符串方法

作者:Together_CZ 时间:2021-03-25 14:59:25 

给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从1增加到字符串长度减1,将所有的得到的切片统计结果,在这里不考虑单个字符的重复模式,好了,很简单看具体实现:


#!usr/binenv python
#encoding:utf-8

'''
__Author__:沂水寒城
统计一个给定字符串中重复模式数量得到最高重复模式串
'''

def slice(num_str,w):
'''
对输入的字符串滑窗切片返回结果列表
'''
result_list=[]
for i in range(len(num_str)-w+1):
 result_list.append(num_str[i:i+w])
return result_list

def get_repeat_num_seq(num_str):
'''
统计重复模式串数量
'''
result_dict={}
result_list=[]
for i in range(2,len(num_str)):
 one_list=slice(num_str, i)
 result_list+=one_list
for i in range(len(result_list)):
 if result_list[i] in result_dict:
  result_dict[result_list[i]]+=1
 else:
  result_dict[result_list[i]]=1
sorted_result_dict=sorted(result_dict.items(), key=lambda e:e[1], reverse=True)
return sorted_result_dict[0:10]

if __name__ == '__main__':
num_list=get_repeat_num_seq('4513785645121214545454545457894')
print num_list

结果如下:


[('45', 8), ('4545', 5), ('454', 5), ('545', 5), ('54', 5), ('5454', 4), ('454545', 4), ('45454', 4), ('54545', 4), ('545454', 3)]
[Finished in 0.5s]

结果列表中第一个即为所求,当然,基于此还可以继续改进有很多别的需求。

来源:https://blog.csdn.net/Together_CZ/article/details/74761447

标签:python,重复,字符串
0
投稿

猜你喜欢

  • 分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功

    2023-10-07 19:07:43
  • 解决pycharm安装后代码区不能编辑的问题

    2022-07-26 22:26:24
  • 一文教你如何使用Python绘制瀑布图

    2023-07-10 18:29:28
  • 微信小程序前端如何调用python后端的模型详解

    2023-03-12 06:29:13
  • MySQL命令行导出导入数据库实例详解

    2024-01-22 08:57:22
  • 利用WSH获取计算机硬件信息、DNS信息等

    2008-05-05 13:04:00
  • vue-cli项目中怎么使用mock数据

    2024-05-09 15:25:26
  • ASP 禁用清除页面缓存

    2008-07-21 12:43:00
  • 小记一次mysql主从配置解决方案

    2024-01-12 18:28:42
  • 谈谈XHTML中CDATA

    2007-09-17 12:45:00
  • 让程序员都费解的10大编程语言特性

    2023-09-12 03:56:49
  • Pytorch转onnx、torchscript方式

    2022-05-03 11:10:43
  • 吐血推荐珍藏的Visual Studio Code插件(推荐)

    2023-02-09 08:58:31
  • Python多线程获取返回值代码实例

    2023-03-25 17:42:27
  • TypeScript新语法之infer extends示例详解

    2024-03-13 20:42:27
  • Go container包的介绍

    2024-04-28 10:49:08
  • Python venv虚拟环境跨设备迁移的实现

    2022-02-01 07:10:55
  • 超实用的全新JavaScript事件Scrollend实例详解

    2024-04-16 10:27:49
  • 如何区分SQL数据库中的主键与外键

    2024-01-21 09:42:13
  • Python针对给定字符串求解所有子序列是否为回文序列的方法

    2022-04-30 01:17:36
  • asp之家 网络编程 m.aspxhome.com