Two definitions follow:
A non-empty binary string is good if the following two conditions are true:
For example, 11010 is not good because it does not have an equal number of 0s and 1s, but 110010 is good because it satisfies both conditions.
A good string can contain multiple good substrings. If two consecutive substrings are good, then they can be swapped as long as the resulting string is still a good string. Given a good binary string, binString
, perform zero or more swap operations on its adjacent good substrings such that the resulting string is the largest possible numeric value. Two substrings are adjacent if the last character of the first substring occurs exactly one index before the first character of the second substring.
Function Description
Complete the function largestGood
in the editor.
largestGood
has the following parameter(s):
String binString
: a binary string
Returns
String
: the largest possible good binary string
Example 1:
Input: binString = "101011000"
Output: "1110001010"
Explanation:There are two good binary substrings,
1010
and111000
, among others. Swap these two substrings to get a larger value:1110001010
. This is the largest possible good string that can be formed.
TO-DO

input:
output: