Максимальное количество уникальных подстрок индекса 10 или 01 в заданной двоичной строке

Опубликовано: 20 Сентября, 2022

Для заданной двоичной строки 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: 1

Input: str  = “11”
Output: 0

Подход: это проблема, основанная на реализации. Выполните шаги, упомянутые здесь, чтобы решить проблему:

  • Проведите струну слева направо .
  • Инициализировать количество пар с 0 и считать предыдущий символ свободным.
  • Запустите цикл от 1 до размера строки .
  • Проверить, является ли предыдущий символ противоположным текущему символу или нет, а также свободен он или нет
    • Если да , то увеличьте количество пар и установите символ как несвободный.
    • В противном случае продолжить обход в цикле, считая символ свободным.
  • Выведите количество пар.

Ниже приведена реализация описанного выше подхода.


Сложность времени: НА)
Вспомогательное пространство: O(1)