假设我有一串字符。如何查找最小长度为l
的最常见字符序列?
编程语言并不重要,但它应该在普通计算机上使用1000+的字符串。
答案 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;
}
}
在不同的字符串位置可能会遇到相同的序列,因此它们会被大量计算。这是无害的,但需要一些额外的周期。避免这种情况的一种方法是存储找到的序列,不要检查已经检查过的序列。但是长字符串和长序列的内存需求可能会变得很大。