文章目录
- 解析
- AC CODE
题目链接:LeetCode - 1702. 修改后的最大二进制字符串
解析
详细题解:贪心,简洁写法(Python/Java/C++/Go/JS/Rust)
思路很牛b。
简单来说我们需要想办法将0配对,将其变为10,对于单个的0,我们需要用10->01这个操作将后面的0冒泡到前面进行配对。
AC CODE
char* maximumBinaryString(char* binary) {int n = strlen(binary);int cnt = 0;int mark = 0;for(int i = 0; i < n; ++i){if(binary[i] == '0') mark = 1;if(mark && binary[i] == '1') cnt++;}if(cnt == 0 && mark == 0) return binary;for(int i = 1; i <= n; ++i){if(i == n - cnt) binary[i - 1] = '0';else binary[i - 1] = '1';}return binary;
}