Максимальное количество уникальных подстрок индекса 10 или 01 в заданной двоичной строке
Для заданной двоичной строки str длины N задача состоит в том, чтобы подсчитать максимальное количество соседних пар вида «01» или «10» , которые могут быть образованы из заданной двоичной строки, когда один символ можно рассматривать только как одну пару.
Примечание. Под соседней парой понимается пара, образованная с использованием соседних символов.
Примеры:
Input: str = “0101110”
Output: 3
Explanation: The three pairs are “01” at the starting first,
“01” starting at 2nd index (0 based indexing)
and “10” at the end of the string.
Notice 2 pairs can also be formed by using “10” from index 1 and “10” at last.
But that does not give the maximum number of adjacent pairs.Input: str = “0011”
Output: 1Input: str = “11”
Output: 0
Подход: это проблема, основанная на реализации. Выполните шаги, упомянутые здесь, чтобы решить проблему:
- Проведите струну слева направо .
- Инициализировать количество пар с 0 и считать предыдущий символ свободным.
- Запустите цикл от 1 до размера строки .
- Проверить, является ли предыдущий символ противоположным текущему символу или нет, а также свободен он или нет
- Если да , то увеличьте количество пар и установите символ как несвободный.
- В противном случае продолжить обход в цикле, считая символ свободным.
- Выведите количество пар.
Ниже приведена реализация описанного выше подхода.
Сложность времени: НА)
Вспомогательное пространство: O(1)