python获取指定字符串中重复模式最高的字符串
来源:互联网 发布:软件项目开发过程管理 编辑:程序博客网 时间:2024/06/05 05:53
给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从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_listdef 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]结果列表中第一个即为所求,当然,基于此还可以继续改进有很多别的需求。
阅读全文
0 0
- python获取指定字符串中重复模式最高的字符串
- python实现前向匹配中查找最大长度的最高重复模式的子字符串
- python 从一系列字符串中,找出频率最高的字符串
- IOS从字符串中获取指定字符之间的字符串
- 重复子串问题(三):输出一个字符串中出现频率最高的子串
- Python中提取指定字符串
- 使用python获取email的subject中带有指定字符串的邮件
- 重复一个指定的字符串 n次
- delphi中按指定字符重复生成指定长度字符串
- java获取字符串中重复出现的字符
- 获取字符串格式的日期列中,指定的年月日
- C#字符串中获取指定行的方法
- 去掉字符串中重复的子字符串
- 去除给定字符串中重复的字符串
- 删除字符串中重复的字符串
- 从文件中获取指定字符串源码
- Java中 获取指定字符串在另一个字符串中出现的次数
- sed 获取指定字符串
- 调通sina33m下的RTL8188EU版本(分色版本)V1.0
- 最小的循环周期
- tp中,如果实例化一个表格失败,或该表格就不存在,怎么输出错误
- ActionContext、ServletContext、pageContext的区别?
- 利用google的zxing生成二维码
- python获取指定字符串中重复模式最高的字符串
- unity学习日记:高光贴图、法线贴图、UV贴图理解
- 扒网站利器
- C++-primer-第一章
- 降维三部曲(二)
- 一张图解决java
- iOS小Demo之区域截图
- 欢迎使用CSDN-markdown编辑器
- result的type属性中有哪几种结果类型?