1702. Maximum Binary String After Change

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public String maximumBinaryString(String binary) {
// 00 -> 10 -> 01

char[] chars = binary.toCharArray();
int j = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] == '0') {
while (j <= i || (j < chars.length && chars[j] == '1')) {
j++;
}

// 找到了下一个 0
// 0111110 -> 1000001
if (j < chars.length) {
chars[i] = '1';
chars[j] = '1';
chars[i + 1] = '0';
}
}
}

return new String(chars);
}
}

References

1702. Maximum Binary String After Change