Проверьте, можно ли сделать данную двоичную строку палиндромом, используя 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)