Как мне изменить этот код для решения данной проблемы, возможно ли вообще решить эту проблему с помощью этого метода?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Как мне изменить этот код для решения данной проблемы, возможно ли вообще решить эту проблему с помощью этого метода?

Сообщение Гость »


Кодирование длины серии — это метод сжатия строк, который работает путем замены последовательных одинаковых символов (повторяющихся 2 или более раз) конкатенацией символа и числа, обозначающего количество символов (длину серии). Например, чтобы сжать строку «aabccc», мы заменяем «aa» на «a2» и заменяем «ccc» на «c3». Таким образом, сжатая строка становится «a2bc3».

Обратите внимание, что в этой задаче мы не добавляем цифру «1» после отдельных символов.

Дана строка s и целое число k. Вам необходимо удалить не более k символов из s, чтобы версия s в кодировке серийной длины имела минимальную длину.

Определите минимальную длину закодированной версии s после удаления не более k символов.

Пример 1:
[*]Ввод: s = "aaabcccd", k = 2 [*]Выход: 4
Объяснение: Сжатие s без удаления даст нам «a3bc3d» длины 6. Удаление любого из символов «a» или «c» максимально уменьшит длину сжатой строки до 5, например delete 2 ' a', то у нас будет s = "abcccd", что в сжатом виде будет abc3d. Поэтому оптимальный способ — удалить «b» и «d», тогда сжатая версия s будет «a3c3» длины 4.

Пример 2:
[*]Ввод: s = "aabbaa", k = 2 [*]Выход: 2
Объяснение: Если мы удалим оба символа «b», результирующая сжатая строка будет «a4» длины 2.

Пример 3:
[*]Ввод: s = "ааааааааа", k = 0 [*]Выход: 3
Объяснение: поскольку k равно нулю, мы не можем ничего удалить. Сжатая строка — «a11» длины 3.

Ограничения:
[*]1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»