leetcode 1702. Maximum Binary String After Change
Problem: 1702. 修改后的最大二进制字符串00可以变成1010可以变成01所以右侧的0可以向右移动不妨将所有的0全部移动到左侧所有的1全部移动到右侧特殊情况是最开始都是连续的1此时需要单独提取出来从第一个0开始计数统计1和0的个数像11100010101全部移动的11100000111最后只需要将00变成10就行最后的结果也就是111 11110 111Codeclass Solution { public: string maximumBinaryString( string binary ) { int z0 0, z1 0, l 0; string ret; int n binary.size(); while( l n binary[l]1) l; ret string(l, 1); for( ; l n; l ) { if(binary[l] 0) z0; else z1; } string ret1; if(z0 0) ret1 string(z0 - 1, 1); string ret0 string(n - z0 - ret.size(), 1); if(z0 0) ret ret ret1 0; ret ret0; return ret; } };