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实现的DES加密算法和3DES加密算法实例
Jun 03 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
pytorch 转换矩阵的维数位置方法
Dec 08 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
python如何用matplotlib创建三维图表
Jan 26 Python
Python 视频画质增强
Apr 28 Python
pytorch实现加载保存查看checkpoint文件
Jul 15 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 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
2019/12/22 Javascript
python正则表达式match和search用法实例
2015/03/26 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
从Python的源码来解析Python下的freeblock
2015/05/11 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Python实现最常见加密方式详解
2019/07/13 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
主办会计岗位职责
2014/03/13 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
廉政承诺书范文
2015/04/28 职场文书
思想工作总结范文
2015/08/12 职场文书
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL