
- Python Basic Tutorial
- Python - Home
- Python - Overview
- Python - Environment Setup
- Python - Basic Syntax
- Python - Comments
- Python - Variables
- Python - Data Types
- Python - Operators
- Python - Decision Making
- Python - Loops
- Python - Numbers
- Python - Strings
- Python - Lists
- Python - Tuples
- Python - Dictionary
- Python - Date & Time
- Python - Functions
- Python - Modules
- Python - Files I/O
- Python - Exceptions
Program to count number of swaps required to group all 1s together in Python
Suppose we have a binary string, and we can swap any two bits. We have to find the minimum number of swaps required to group all 1s together.
So, if the input is like s = "0111001", then the output will be 1, as We can perform these swaps: 0111001 -> 1111000.
To solve this, we will follow these steps −
- data := a list of 0s and 1s from the given binary string
- set one := 0, n:= length of data array
- make an array summ of size n, and fill this with 0, set summ[0] := data[0]
- one := one + data[0]
- for i in range 1 to n – 1
- summ[i] := summ[i - 1] + data[i]
- one := one + data[i]
- ans := one
- left := 0, right := one – 1
- while right < n
- if left is 0, then temp := summ[right], otherwise temp := summ[right] – summ[left - 1]
- ans := minimum of ans, one – temp
- increase right and left by 1
- return ans
Example (Python)
Let us see the following implementation to get better understanding −
class Solution(object): def solve(self, s): data = list(map(int, list(s))) one = 0 n = len(data) summ=[0 for i in range(n)] summ[0] = data[0] one += data[0] for i in range(1,n): summ[i] += summ[i-1]+data[i] one += data[i] ans = one left = 0 right = one-1 while right <n: if left == 0: temp = summ[right] else: temp = summ[right] - summ[left-1] ans = min(ans,one-temp) right+=1 left+=1 return ans ob = Solution() s = "0111001" print(ob.solve(s))
Input
"0111001"
Output
1
- Related Articles
- Program to find minimum swaps needed to group all 1s together in Python
- Minimum Swaps required to group all 1’s together in C++
- Minimum Swaps to Group All 1's Together in Python
- Program to count number of minimum swaps required to make it palindrome in Python
- Program to group the 1s with minimum number of swaps in a given string in Python
- Program to count number of swaps required to change one list to another in Python?
- Program to find number of swaps required to sort the sequence in python
- Program to find minimum number of swaps needed to arrange all pair of socks together in C++
- Program to count number of operations required to all cells into same color in Python
- Program to count number of operations required to convert all values into same in Python?
- Program to count number of flipping required to make all x before y in Python
- Minimum swaps required to bring all elements less than or equal to k together in C++
- Program to count substrings with all 1s in binary string in Python
- Count numbers have all 1s together in binary representation in C++
- Program to find minimum swaps required to make given anagram in python

Advertisements