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

佛山网站建设no.1泰安肥城做网站的公司

佛山网站建设no.1,泰安肥城做网站的公司,做企业网站步骤,株洲渌口区【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.zqtcl.cn/news/520359/

相关文章:

  • 网站建设公司哪家比较好外贸网站建设公司价格
  • 做网站大概价格网站备案填写
  • 网站建设容易出现的问题网站建设学习网公司有哪些
  • 做网站的准备什么com域名
  • 百度资料怎么做网站赣州有没有做网站的
  • 网站上地图怎么做的福建省晋江市建设局网站
  • 休闲咖啡厅网站开发目标站内推广的方法和工具
  • 东莞做营销型网站怎样利用网站做引流
  • 国际1688网站网络平台宣传费用
  • 免费网站自助建站18款禁游戏黄app入口
  • 网站建设要经历哪些步骤?wordpress主题king
  • 个人定制网站外贸免费网站建设
  • ASP网站建设实训报告总结宜昌本地网站建设
  • 甘肃省建设厅官方网站张睿建立网站服务器
  • 有没有做博物馆的3d网站网页美工设计岗前培训
  • 如何防止网站被盗长沙知名网站建设
  • 汕尾住房和建设局网站山西招标网
  • 网站建设那好山西建设厅网站
  • 2免费做网站外贸公司注册需要多少钱
  • 莘县网站定制安卓软件开发培训机构
  • 织梦视频网站源码有没有专门做名片的网站
  • 济南本地网站自己做的网站怎么置顶
  • wordpress能做多大的站好用的网站后台
  • 想自己做网站流程国家住建网查企业资质
  • 英文网站怎么设计google浏览器入口
  • 重庆网站建设公司魁网个人备案网站名
  • 怀柔营销型网站建设wordpress菜单定制
  • 大连装修网站推广天津市建设信息工程网
  • 服装网站建设建议域名注册最好的网站
  • 小游戏网站网络营销推广岗位