Ну, эти меньшие подпоследовательности, такие как "a" и "aa" , являются общими подпоследовательностями, так что это не будет неверным.
Если вы действительно хотите только самые длинные общие подпоследовательности (т.е. те подпоследовательности, которые не содержатся ни в одной другой общей подпоследовательности), вам нужно проверить, являются ли эти подпоследовательности частьюобщая подпоследовательность, и если да, откажитесь от них.
Это может быть сделано (в псевдокоде)
finalsubsequences = copy(subsequences);
for(subseq in subsequences) {
for(subseq2 in subsequences) {
if(subseq2.indexOf(subseq) != false)
// subseq contains subseq2, thus discard subseq2
finalsubsequences.remove(subseq2);
}
}
Удачи!