All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g2901_3000.s2938_separate_black_and_white_balls.readme.md Maven / Gradle / Ivy

The newest version!
2938\. Separate Black and White Balls

Medium

There are `n` balls on a table, each ball has a color black or white.

You are given a **0-indexed** binary string `s` of length `n`, where `1` and `0` represent black and white balls, respectively.

In each step, you can choose two adjacent balls and swap them.

Return _the **minimum** number of steps to group all the black balls to the right and all the white balls to the left_.

**Example 1:**

**Input:** s = "101"

**Output:** 1

**Explanation:** We can group all the black balls to the right in the following way: 
- Swap s[0] and s[1], s = "011". 

Initially, 1s are not grouped together, requiring at least 1 step to group them to the right.

**Example 2:**

**Input:** s = "100"

**Output:** 2

**Explanation:** We can group all the black balls to the right in the following way: 
- Swap s[0] and s[1], s = "010". 
- Swap s[1] and s[2], s = "001". 

It can be proven that the minimum number of steps needed is 2.

**Example 3:**

**Input:** s = "0111"

**Output:** 0

**Explanation:** All the black balls are already grouped to the right.

**Constraints:**

*   1 <= n == s.length <= 105
*   `s[i]` is either `'0'` or `'1'`.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy