首页 > 其他分享 >1702. 修改后的最大二进制字符串

1702. 修改后的最大二进制字符串

时间:2023-04-13 15:47:48浏览次数:34  
标签:10 1702 第一个 binary 二进制 个数 cnt 字符串

题目描述

给了一个只包含0和1的字符串
现在有俩操作能选(1)把00换成10;(2)把10换成01
问怎么操作能得到最大的字符串?

f1-找规律+贪心

基本分析

  1. 为啥会有10换成01的操作?1010-1001-1101,把第一个0后面的1都挪到最后面,变成多个1+多个0+多个1的组合。然后把多个1按照(1)处理
  2. 以上逻辑用代码怎么实现?(1)找到第一个0的位置;(2)统计第一个0后面1的个数;(3)构造结果

代码

class Solution:
    def maximumBinaryString(self, binary: str) -> str:
        if not '0' in binary:
            return binary

        n = len(binary)
        # 找到第一个0的位置
        idx = binary.index('0')
        # 最终结果是 '1' * (长度 - 0后面1的个数 - 1) + '0' + '1' * cnt1
        # 统计第一个0后面1的个数
        cnt = binary[idx:].count('1')
        return '1' * (n - cnt - 1) + '0' + '1' * cnt

总结

  1. 不惜要写出过程,直接构造结果

标签:10,1702,第一个,binary,二进制,个数,cnt,字符串
From: https://www.cnblogs.com/zk-icewall/p/17315035.html

相关文章

  • python4:字符串操作
    概念:字符串是一种序列,每一个位置对应了一个下标。,要取出字符串的部分数据可以从下标取出(下标从0开始)。这里支持索引。切片:截取字符串中一段内容。切片使用语法:[起始下标:结束下标:步长]截取的内容不包含结束下标对应的数据,步长指的是隔几个下标获取一个字符。(这是python语言的高级......
  • 对于为何设置mySql连接字符串为生么设置useSSL=false
    不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL5.5.45+、5.6.26+和5.7.6+的要求,如果不设置显式选项,则必须建立默认的SSL连接。需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储。所以建议设置useSSL为false,有时遇到的问题......
  • 6.一维数组、字符串数组二维数组和多维数组
    一维数组字符串数组二维数组多维数组一维数组语法:语法类型 数组名[数组大小]={元素,元素}eg:intdata[3]={1,2,3}输出数组名为,首元素地址cout<<data<<endl;cout<<&data[0]; 第一个元素下标为0,data[0]=1;如果内容不满intdata[3]={1,2};......
  • js字符串转base64
    js字符串转base64原文链接:https://blog.csdn.net/qq_40666120/article/details/120146906字符串转base64functionencode(str){ //对字符串进行编码 varencode=encodeURI(str); //对编码的字符串转化base64 varbase64=btoa(encode); returnbase64;}1234567......
  • JavaScript 数组字符串转换Json格式
    JavaScript数组字符串转换Json格式//滔Roy2023.04.13functionparseStringToArray(str){//尝试将字符串解析为JSON格式try{constarr=JSON.parse(str);//如果解析成功,则直接返回解析结果if(Array.isArray(arr)){returnarr;}}......
  • JS字符串转base64格式
    JS字符串转base64格式原文链接:https://www.cnblogs.com/liu-fei-fei/p/7251105.htmlvarBase64={//privateproperty_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",//publicmethodforencodingencode:functi......
  • 字符串拼接【面试题】
    先来看一段代码publicclassTest{publicStringmethod1(){Stringret="";for(inti=0;i<100000;i++){ret=ret+"ok";}returnret;}publicStringmethod2(){StringBuilderret=newStringB......
  • 二进制转十进制
    输入一个八位二进制数,将其转换成十进制。#include<iostream>usingnamespacestd;doublepower(doublex,intn);intmain(){ doublex; inta; cin>>x>>a; power(x,a); cout<<power(x,a)<<endl; return0;}doublepower(doublex,intn){ doubley=1.0; whil......
  • 7659: 计算字符串距离 动态规划
    描述 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为:   修改一个字符(如把“a”替换为“b”);删除一个字符(如把“traveling”变为“travelng”)。比如对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的......
  • 使用 InterpolatedString 减少字符串拼接的 GC
    原视频链接考虑到Unity准备在2024年前后,推出基于dotnetRuntime的版本,本篇文章也标记为Unity分类,等后面Unity准备好之后,再对新版的客户端进行改造在日常开发过程中,字符串的拼接通常会占用大量的GC,通常拼接字符串我们会使用如下几种方法1.1+"/"+2+"/"+32......