Дана последовательность чисел, например: 1, 2, 1, 2
.
Существует ли какой-либо известный алгоритм для обнаружения повторений и группировки их так, чтобы результирующая последовательность имела максимально короткий размер?
Например, для предыдущей последовательности результат будет (1, 2)x2
.
Больше примеров:
Input: 1, 1, 1, 2, 1, 1, 1, 2
Output: ((1)x3, 2)x2
Input: 1, 2, 1, 2, 1, 2
Output: (1, 2)x3
Input: 1, 1, 1, 2, 1, 2
Output: (1)x2, (1, 2)x2
EDIT:
Длина результата (например, (1, 2)x2
) не включает дополнительную информацию, касающуюся группировки и повторения (то есть игнорируется (),x
и число после x
).
Например, длина (1, 2)x2
фактически равна 2.
Длина ((1)x3, 2)x2
по-прежнему равна 2, поскольку мы рассматриваем только количество элементов, принадлежащих исходной последовательности (в данном случае 1 и 2).