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写入中英文字符串到文件的方法
May 06 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
python逆序打印各位数字的方法
Jun 25 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
使用python对excle和json互相转换的示例
Oct 23 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
python 定时器,轮询定时器的实例
Feb 20 Python
python多线程抽象编程模型详解
Mar 20 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
解决python运行启动报错问题
Jun 01 Python
Python语言内置数据类型
Feb 24 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
文件上传类
2006/10/09 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
Python序列化基础知识(json/pickle)
2017/10/19 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
自主招生自荐信格式
2013/12/03 职场文书
银行员工职业规划范文
2014/01/21 职场文书
行政人事岗位职责
2014/03/17 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
戒赌保证书
2015/05/11 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
vue的项目如何打包上线
2022/04/13 Vue.js
Python开发简易五子棋小游戏
2022/05/02 Python