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 装饰器深入理解
Mar 16 Python
Python 专题一 函数的基础知识
Mar 16 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
Python socket实现简单聊天室
Apr 01 Python
python3 遍历删除特定后缀名文件的方法
Apr 23 Python
transform python环境快速配置方法
Sep 27 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
Python Celery多队列配置代码实例
Nov 22 Python
python向图片里添加文字
Nov 26 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
如何在python中实现ECDSA你知道吗
Nov 23 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
第八节 访问方式 [8]
2006/10/09 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
opencv python 傅里叶变换的使用
2018/07/21 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
请解释在new与override的区别
2012/10/29 面试题
说明书格式及范文
2014/05/07 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
求职意向书范本
2015/05/11 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
分享3个非常实用的 Python 模块
2022/03/03 Python