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程序与MySQL的教程
Apr 29 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
python利用urllib和urllib2访问http的GET/POST详解
Sep 27 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
在python3.5中使用OpenCV的实例讲解
Apr 02 Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
python+selenium+chromedriver实现爬虫示例代码
Apr 10 Python
详解python UDP 编程
Aug 24 Python
Vs Code中8个好用的python 扩展插件
Oct 12 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
python递归函数绘制分形树的方法
2018/06/22 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
python+logging+yaml实现日志分割
2019/07/22 Python
Python运行DLL文件的方法
2020/01/17 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
设计顾问服务计划书
2014/05/04 职场文书
医院搬迁方案
2014/06/14 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电