> For the complete documentation index, see [llms.txt](https://jaywin.gitbook.io/leetcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jaywin.gitbook.io/leetcode/solutions/1702-maximum-binary-string-after-change.md).

# 1702. Maximum Binary String After Change

<https://leetcode.com/problems/maximum-binary-string-after-change>

## Description

You are given a binary string `binary` consisting of only `0`'s or `1`'s. You can apply each of the following operations any number of times:

* Operation 1: If the number contains the substring `"00"`, you can replace it with `"10"`.
  * For example, `"00010" -> "10010`"
* Operation 2: If the number contains the substring `"10"`, you can replace it with `"01"`.
  * For example, `"00010" -> "00001"`

*Return the **maximum binary string** you can obtain after any number of operations. Binary string `x` is greater than binary string `y` if `x`'s decimal representation is greater than `y`'s decimal representation.*

**Example 1:**

```
**Input:** binary = "000110"
**Output:** "111011"
**Explanation:** A valid transformation sequence can be:
"000110" -> "000101" 
"000101" -> "100101" 
"100101" -> "110101" 
"110101" -> "110011" 
"110011" -> "111011"
```

**Example 2:**

```
**Input:** binary = "01"
**Output:** "01"
**Explanation:** "01" cannot be transformed any further.
```

**Constraints:**

* `1 <= binary.length <= 105`
* `binary` consist of `'0'` and `'1'`.

## ac

```java
```
