国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現統計給定字符串中重復模式最高子串功能示例

2020-01-04 15:04:18
字體:
來源:轉載
供稿:網友

本文實例講述了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_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]

結果列表中第一個即為所求,當然,基于此還可以繼續改進有很多別的需求。

希望本文所述對大家Python程序設計有所幫助。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大竹县| 康保县| 林口县| 乐昌市| 独山县| 贞丰县| 韶山市| 石林| 任丘市| 长岛县| 信宜市| 惠来县| 民权县| 湘潭市| 赞皇县| 东乌珠穆沁旗| 赞皇县| 思茅市| 孟村| 汉阴县| 雷州市| 盐池县| 德保县| 托克逊县| 巧家县| 阿荣旗| 德化县| 达州市| 西安市| 北安市| 克山县| 桂平市| 岳阳县| 繁昌县| 秦皇岛市| 察隅县| 辽中县| 日照市| 日喀则市| 肃北| 长兴县|