当前位置: 首页 > news >正文

凡科网站设计模板西安网站建设-中国互联

凡科网站设计模板,西安网站建设-中国互联,宿迁房产网58,ui界面设计尺寸【LetMeFly】1702.修改后的最大二进制字符串#xff1a;脑筋急转弯#xff08;构造#xff0c;贪心#xff09; 力扣题目链接#xff1a;https://leetcode.cn/problems/maximum-binary-string-after-change/ 给你一个二进制字符串 binary #xff0c;它仅有 0 或者 1 组…【LetMeFly】1702.修改后的最大二进制字符串脑筋急转弯构造贪心 力扣题目链接https://leetcode.cn/problems/maximum-binary-string-after-change/ 给你一个二进制字符串 binary 它仅有 0 或者 1 组成。你可以使用下面的操作任意次对它进行修改 操作 1 如果二进制串包含子字符串 00 你可以用 10 将其替换。 ulli比方说 codestrong00/strong010 - strong10/strong010/code/li /ul /li li操作 2 如果二进制串包含子字符串 code10/code 你可以用 code01/code 将其替换。 ulli比方说 code000strong10/strong - 000strong01/strong/code/li /ul /li请你返回执行上述操作任意次以后能得到的 最大二进制字符串 。如果二进制字符串 x 对应的十进制数字大于二进制字符串 y 对应的十进制数字那么我们称二进制字符串 x 大于二进制字符串 y 。 示例 1 输入binary 000110 输出111011 解释一个可行的转换为 000110 - 000101 000101 - 100101 100101 - 110101 110101 - 110011 110011 - 111011示例 2 输入binary 01 输出01 解释01 没办法进行任何转换。提示 1 binary.length 105binary 仅包含 0 和 1 。 解题方法构造贪心 题目分析 如果给定字符串中没有0则不在本次讨论的范围之列直接返回原字符串。 推论1最终字符串中一定有0 仅有的两种变换分别是00-10和10-01只能减少0的个数但永远不可能将所有0消除。 推论2最终字符串中一定只有一个0 以10111011为例该字符串中有两个0则可以进行以下变换10111011-10011111-11011111具体变换过程如下 10111011 10110111 --- 10101111 ---后面的那个0不断地通过10-01的变换最终和前面那个0相邻 10011111 --- 11011111 - 相邻两个0通过00-10的变换使得二进制字符串相比于初始值更大了也就是说假设最终字符串中有两个0那么后面的那个0一定可以通过10-01的变换与前面的0相邻相邻两个0再通过00-10变换使得第一个0变成了1字符串值更大了。 若有多个0则同理最终一定只剩下一个0变成111..11011..111的形态。 为什么不继续变化了呢因为11、01都不可变唯一可变的是10-01。但是这么变的话相当于“0往前移”了字符串值更小不可取。 如何判断最终字符串中0的位置 由给定的两种变换00-10和10-01可以发现0要么被消除变换一要么左移变换二单纯的左移会导致字符串变小因此尽量将最前面的0“消除”。 如何消除通过变换一消除。通过推论2我们知道只要存在两个0则右边的0必定能千里迢迢地来到左边的0身边并与之进行变换一 111..11011..11011..11 111..11001..11111..11 111..11101..11111..11也就是说第一个0的右边每存在一个0就能让第一个0的位置“右移一位”。 最终第一个0也就是唯一的一个0的位置是原始字符串中第一个0的位置再右移 0 的总个数 − 1 0的总个数 - 1 0的总个数−1位。 具体方法 给定字符串统计其中0的个数记为cnt0。 若无0则直接返回原始字符串否则继续。 找到字符串中第一个0的位置记为pos0构造一个只有pos0 cnt0 - 1这个位置为0其余位置全部为1的字符串并返回。 时空复杂度分析 时间复杂度 O ( l e n ( b i n a r y ) ) O(len(binary)) O(len(binary))空间复杂度 O ( l e n ( b i n a r y ) ) O(len(binary)) O(len(binary))空间复杂度来自字符串构造过程中的临时变量。 AC代码 C class Solution { public:string maximumBinaryString(string binary) {int cnt0 count(binary.begin(), binary.end(), 0);if (!cnt0) {return binary;}int first0 binary.find(0);return string(first0 (cnt0 - 1), 1) 0 string(binary.size() - (first0 (cnt0 - 1)) - 1, 1);} };Python class Solution:def maximumBinaryString(self, binary: str) - str:cnt0 binary.count(0)if not cnt0:return binaryfirst0 binary.find(0)pos0 first0 (cnt0 - 1)return 1 * pos0 0 1 * (len(binary) - pos0 - 1)同步发文于CSDN和我的个人博客原创不易转载经作者同意后请附上原文链接哦~ Tisfyhttps://letmefly.blog.csdn.net/article/details/137593422
http://www.w-s-a.com/news/469316/

相关文章:

  • wordpress菜单栏的函数调用迅速上排名网站优化
  • 网站深圳广西模板厂哪家价格低
  • 搜索网站显示网页无法访问最好的网站推广
  • 巴彦淖尔市百家姓网站建设搬瓦工暗转wordpress
  • 温州鹿城区企业网站搭建云虚拟机
  • 网站的开发方法php网站商城源码
  • 旅游找什么网站好维护公司网站建设
  • 长春市长春网站制作站优化杭州企业推广网站
  • 网站建设开发设计营销公司山东网信办抓好网站建设
  • 斗图在线制作网站搜索关键词优化
  • 大连 网站建设 有限公司十大erp系统
  • 网站后台建设软件网络营销公司招聘
  • 做网站销售电销好做吗网站开发毕业设计代做
  • 成都学网站建设费用帝国cms与wordpress
  • 如何刷网站排名品牌设计的英文
  • 富阳有没有做网站的房产局官网查询系统
  • 建设网站列表aliyun oss wordpress
  • 做PPT的辅助网站wordpress拖拽式主题
  • 商城网站源码seo兼职58
  • 汽车租赁网站的设计与实现全网营销推广哪家正规
  • 做网站时怎么取消鼠标悬停如何设计软件界面
  • 建德网站设计公司中国十大热门网站排名
  • 网站与新媒体建设测评方案163企业邮箱官网入口
  • 怎样做下载网站页面设计参评
  • 哈尔滨住建局网站首页设计制作过程
  • php投资理财企业网站模板网站呼叫中心 建设工期
  • 查数据的权威网站silverlight 做的网站
  • 网站开发外包网站贵阳网站建设 网站制作
  • 官方微网站西安景观设计公司排行
  • 广州学做网站视频代做网站