Проверьте, можно ли сделать данную двоичную строку палиндромом, используя K флипов

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

Для заданной двоичной строки str задача состоит в том, чтобы определить, можно ли преобразовать строку str в палиндром за K ходов. За один ход любой бит может быть перевернут, т.е. с 0 на 1 или с 1 на 0 .

Примеры :

Input:  str = “101100”, K = 1
Output: YES
Explanation: Flip last bit of str from 0 to 1.

Input:  str = “0101101”, K = 2
Output: NO
Explanation: Three moves required to make str a palindrome.
 

Подход : идея состоит в том, чтобы пройти по строке с помощью двух указателей.

  • Сопоставьте биты, на которые указывают оба указателя и
  • Ведите подсчет неудачных сравнений.
  • Желаемым результатом будет количество несопоставленных пар.

Ниже приведена реализация вышеуказанного подхода:


Временная сложность : O(N)
Вспомогательное пространство : O(1)

РЕКОМЕНДУЕМЫЕ СТАТЬИ