给定字符串中最常见的字符序列

时间:2015-02-21 22:22:39

标签: sequence

假设我有一串字符。如何查找最小长度为l的最常见字符序列?

编程语言并不重要,但它应该在普通计算机上使用1000+的字符串。

1 个答案:

答案 0 :(得分:0)

你必须找到所有可能的序列并计算它们。也就是说,

for (each position in string) {
    length = 0;
    do {
        sequence = (string from position to position + length);
        count sequence locations in string;
        if (count is higher than max count) {
            remember sequence;
            update max count;
        }
        length++;
        if (position + length > string.length or length > sequence limit) break;
    }
}

在不同的字符串位置可能会遇到相同的序列,因此它们会被大量计算。这是无害的,但需要一些额外的周期。避免这种情况的一种方法是存储找到的序列,不要检查已经检查过的序列。但是长字符串和长序列的内存需求可能会变得很大。