Python实现统计给定字符串中重复模式最高子串功能示例


Posted in Python onMay 16, 2018

本文实例讲述了Python实现统计给定字符串中重复模式最高子串功能。分享给大家供大家参考,具体如下:

给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从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]

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

Python 相关文章推荐
python之import机制详解
Jul 03 Python
python实现从字典中删除元素的方法
May 04 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
Django框架序列化与反序列化操作详解
Nov 01 Python
Python中base64与xml取值结合问题
Dec 22 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
详解Python yaml模块
Sep 23 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
使用pytorch实现线性回归
Apr 11 Python
用Python创建简易网站图文教程
Jun 11 Python
Python数据可视化之Seaborn的安装及使用
Apr 19 Python
Python(Django)项目与Apache的管理交互的方法
May 16 #Python
Python检测网络延迟的代码
May 15 #Python
在windows下Python打印彩色字体的方法
May 15 #Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 #Python
Python切片索引用法示例
May 15 #Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 #Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 #Python
You might like
php图片上传存储源码并且可以预览
2011/08/26 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
php多任务程序实例解析
2014/07/19 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
培养自己的php编码规范
2015/09/28 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
python可视化实现KNN算法
2019/10/16 Python
Python解析多帧dicom数据详解
2020/01/13 Python
如何通过命令行进入python
2020/07/06 Python
国外软件测试工程师面试题
2016/12/09 面试题
物流专业毕业生推荐信范文
2013/11/18 职场文书
金融专业毕业生推荐信
2013/11/26 职场文书
高分子材料与工程专业推荐信
2013/12/01 职场文书
老公给老婆的道歉信
2014/01/10 职场文书
2014年大学生自我评价
2014/01/19 职场文书
团队口号大全
2014/06/06 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android
MySQL导致索引失效的几种情况
2022/06/25 MySQL