g1701_1800.s1702_maximum_binary_string_after_change.readme.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
1702\. Maximum Binary String After Change
Medium
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'`.