比如dlidweafewfawfhaiofhylowueffsacetvrseseteveryvsh,可能非常长。如何统计aa,ab,ac...ax,ay,az,ba,bb,bc...zx,zy,zz每串的出现次数?更进一步,3个及以上字母串的出现频率?
只有套循环硬算的办法吗?
比如dlidweafewfawfhaiofhylowueffsacetvrseseteveryvsh,可能非常长。如何统计aa,ab,ac...ax,ay,az,ba,bb,bc...zx,zy,zz每串的出现次数?更进一步,3个及以上字母串的出现频率?
只有套循环硬算的办法吗?
我不清楚你心里的硬算是个什么数量级的概念。
我按你的要求写了一个python代码,运算量是O(n)。
接下来就是将这个dic字符串字典投放到26的n次方个字符串的字典anotherDic中去。没有在dic中出现的字符串,默认出现次数为0次。
s = "dlidweafewfawfhaiofhylowueffsacetvrseseteveryvsh"
leng = 3
dic = dict()
for i in range(len(s)-leng):
sub = s[i:i+leng]
if sub in dic.keys():
dic[sub] += 1
else:
dic[sub] = 1
print(dic)