Вам задана строка $$$s$$$, состоящая из строчных букв латинского алфавита. Пусть длина $$$s$$$ равна $$$|s|$$$.
За один ход вы можете выбрать любой индекс $$$i$$$ и удалить $$$i$$$-й символ $$$s$$$ ($$$s_i$$$), если хотя бы один из его соседних символов является предыдущей буквой в латинском алфавите для $$$s_i$$$. Например, для буквы b предыдущей буквой является a, для буквы s предыдущей букой является r, для буквы a предыдущей буквы не существует. Заметьте, что после каждого удаления длина строки уменьшается на единицу. Таким образом, индекс $$$i$$$ должен удовлетворять условию $$$1 \le i \le |s|$$$ в течение каждого хода.
Соседними символами для символа $$$s_i$$$ являются символы $$$s_{i-1}$$$ и $$$s_{i+1}$$$. Первый и последний символы $$$s$$$ имеют только один соседний символ (за исключением случая $$$|s| = 1$$$).
Рассмотрим следующий пример. Пусть $$$s=$$$ bacabcab.
Ваша задача — найти максимальное количество символов, которые вы можете удалить, если вы выберете последовательность ходов оптимально.
Первая строка входных данных содержит одно целое число $$$|s|$$$ ($$$1 \le |s| \le 100$$$) — длину $$$s$$$.
Вторая строка входных данных содержит строку $$$s$$$, состоящую из $$$|s|$$$ строчных букв латинского алфавита.
Выведите одно целое число — максимально возможное количество символов, которые вы можете удалить, если вы выберете последовательность ходов оптимально.
8 bacabcab
4
4 bcda
3
6 abbbbb
5
Первый тестовый пример разобран в условии задачи. Заметьте, что последовательность ходов, представленная в условии, не является единственной, но можно показать, что максимально возможный ответ на этот тест равен $$$4$$$.
Во втором тестовом примере вы можете удалить все символы $$$s$$$, кроме одного. Единственный возможный ответ описан ниже.
Название |
---|