Given a binary number as a string str of length L. The task is to find the minimum number of operations needed so that the number becomes 2L-1, that is a string consisting of only 1’s of the length L.
In each operation, the number N can be replaced by N xor (N + 1).
Input: str = “10010111”
N = 10010111, N + 1 = 10011000, so N xor (N + 1) = 00001111
N = 00001111, N + 1 = 00010000, so N xor (N + 1) = 00011111
N = 00011111, N + 1 = 00100000, so N xor (N + 1) = 00111111
N = 00111111, N + 1 = 01000000, so N xor (N + 1) = 01111111
N = 01111111, N + 1 = 10000000, so N xor (N + 1) = 11111111
Input: str = “101000100101011101”
Approach: After performing the given operation, it can be observed that in order to get the required number, in the end, the number of operations will be:
Number of Operations = length of the string (after removing leading 0s) – count of consecutive 1’s form the end (starting from the least significant bit)
Below is the implementation of the above approach:
Time Complexity: O(n)
- Minimum operations required to convert a binary string to all 0s or all 1s
- Minimum number of given operations required to convert a string to another string
- Minimum number of operations required to sum to binary string S
- Minimum swaps required to convert one binary string to another
- Minimum operations required to make the string satisfy the given condition
- Minimum number of subsequences required to convert one string to another
- Minimum reduce operations to convert a given string into a palindrome
- Minimum number of subsequences required to convert one string to another using Greedy Algorithm
- Minimum swaps required to make a binary string divisible by 2^k
- Minimum swaps required to make a binary string alternating
- Minimum number of operations on a binary string such that it gives 10^A as remainder when divided by 10^B
- Minimum cuts required to convert a palindromic string to a different palindromic string
- Minimum steps to convert one binary string to other only using negation
- Minimum number of given operations required to make two strings equal
- Minimum operations of the given type required to make a complete graph
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.