Given a binary number, the task is to remove exactly one bit from it such that, after it’s removal, the resultant binary number is greatest from all the options.
Input: 110 Output: 11 As 110 = 6 in decimal, the option is to remove either 0 or 1. So the possible combinations are 10, 11 The max number is 11 = 3 in decimal. Input:1001 Output: 101
- Traverse the binary number from left to right.
- Find the least redundant 0 bit, as this bit will have the least effect on the resultant binary number.
- Skip this bit, or remove it.
- The rest of the bits give the maximum value binary number.
Below is the implementation of the above approach:
# Python3 program to find next maximum
# binary number with one bit removed
# Function to find the maximum
# binary number
flag = False
n = len(s)
# Traverse the binary number
for i in range(0, n):
# Try finding a 0 and skip it
if s[i] == ‘0’ and flag == False:
flag = True
print(s[i], end = “”)
# Driver code
if __name__ == “__main__”:
# Get the binary number
s = “1001”
# Find the maximum binary number
# This code is contributed
# by Rituraj Jain
Time Complexity: O(n)
- Ways to remove one element from a binary string so that XOR becomes zero
- Minimum steps to remove substring 010 from a binary string
- Maximum 0's between two immediate 1's in binary representation
- Minimum digits to remove to make a number Perfect Square
- Maximum contiguous 1 possible in a binary string after k rotations
- Maximum difference of zeros and ones in binary string
- Maximum consecutive one’s (or zeros) in a binary array
- Maximum consecutive one’s (or zeros) in a binary circular array
- Maximum Consecutive Zeroes in Concatenated Binary String
- Arrange a binary string to get maximum value within a range of indices
- Maximum difference of zeros and ones in binary string | Set 2 (O(n) time)
- Queries to find the maximum Xor value between X and the nodes of a given level of a perfect binary tree
- Count number of trailing zeros in Binary representation of a number using Bitset
- Check if the binary representation of a number has equal number of 0s and 1s in blocks
- Number of steps required to convert a binary number to one
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. 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.