银川网站设计联系电话,江苏网站建设 博敏网站,版面设计排版,网站建设的功能模块找到第一个0之后#xff0c;对于后面的子串#xff08;包括那个0#xff09;#xff0c;所有的0都能调上来#xff0c;然后一一转化为10#xff0c;因此从找到的第一个0的位置开始#xff0c;接下来是#xff08;后半部分子串0的个数-1#xff09;个1#xff0c;然后…
找到第一个0之后对于后面的子串包括那个0所有的0都能调上来然后一一转化为10因此从找到的第一个0的位置开始接下来是后半部分子串0的个数-1个1然后是一个0接着剩下的都是1.
class Solution {
public:string maximumBinaryString(string binary) {int nbinary.size();int count0;int index0;for(int i0;in;i){if(binary[i]0){indexi;break;}}for(int iindex;in;i){if(binary[i]0){count;}}for(int jindex;jn;j){if(count1){binary[j]1;}else if(count1){binary[j]0;}else if(count1){binary[j]1;}count--;}return binary;}
};
也可以利用贪心算法显示具体的操作过程
class Solution {
public:string maximumBinaryString(string binary) {int n binary.size();int j 0;for (int i 0; i n; i) {if (binary[i] 0) {while (j i || (j n binary[j] 1)) {j;}if (j n) {binary[j] 1;binary[i] 1;binary[i 1] 0;}}}return binary;}
};
注意代码中的j处于一直递增状态如果每次从0开始则会超时。