我手头有一个复杂的问题,即我有一个很大的(超过200000个字符):-
'1213 1242 1213 49 1213 12134 4561213 154816 4631 154816'
输出如下:
1. No. of distinct recurrent patterns
2. Each's pattern's repitition count #=> ([12], 6), ([121], 6), ([1213], 6), ([213], 6), ((21), 6), ((13), 6), .....
在使用ruby/c/c++查找最长重复字符串方面有很多解决方案,但很少有找到所有重复子字符串的解决方案。
我正在寻找一些常规算法来执行此操作就像我们有弗洛伊德的循环搜索算法对于识别周期等,这样的事情开始会很好。
最佳答案
一个循环是指整个集合从头到尾,一遍又一遍地重复。你要在集合中寻找重复出现的模式,这和循环不是一回事。
解决问题的一种强力方法是一次迭代整个集合2,寻找2的模式,如果您还没有看到该模式,请将其存储在映射中,并将count设置为1,否则增加count。然后对3的模式做同样的操作,以此类推。这将是相当缓慢的一个大的投入,所以有优化你将不得不作出。