Я хочу обобщить, а не сжать таким же образом, чтобы кодировать длину пробела, но в вложенном смысле.
Например, я хочу: ABCBCABCBCDEEF стать: (2A (2BC)) D (2E) F
Меня не волнует, что между двумя одинаковыми возможными гнездами выбрана опция.
ABBABBABBABA может быть (3ABB) ABA или (3BBA) BA, которые имеют одинаковую длину сжатия, несмотря на наличие разных структур.
Однако я действительно хочу, чтобы выбор был САМЫМ жадным. Например:
ABCDABCDCDCDCD выберет (2ABCD) (3CD) - длину шесть в исходных символах, которая меньше ABCDAB (4CD), которая имеет длину 8 в исходных символах.
С точки зрения фона у меня есть несколько повторяющихся шаблонов, которые я хочу обобщить. Чтобы данные были более удобоваримыми. Я не хочу нарушать логический порядок данных, поскольку это важно. но я хочу обобщить его, сказав: символ A раз 3 вхождения, за которым следуют символы XYZ для 20 вхождений и т.д., и это можно визуально отобразить в вложенном смысле.
Приветственные идеи.