当前位置: 首页 > 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.pierceye.com/news/520359/

相关文章:

  • 公司网站宣传做网站时版权怎么写
  • 可以在哪些网站 app做推广的建站官网模板
  • 网站建设标书卧龙区建网站
  • 东莞做网站软件嘉兴网站制作价格
  • 学网站建设 去那里合肥专业网站优化
  • 个人网站 备案 广告建设国际网站
  • 苏州建站推广公司做网站费用怎么记分录
  • 做的比较好的家具网站首页在win10下建设网站
  • 住房和城乡建设部网站 绿地网站备案有时间吗
  • 新开传奇手游新服网谷歌seo运营
  • 新河网站建设网站空间 jsp
  • 网站视频如何下载中国建盏
  • 做网站的叫什么软件细谈电商网站外链建设的策略
  • 免费网站制作视频教程广东东莞营销
  • 女生做网站运营累不累贵州省铁路建设办公室网站
  • 全球外贸网站排名go生物网站做蛋白定位
  • 网站的规划和建设方案中教在线3d建模培训
  • 禾天姿网站开发设计上海官网
  • 个人备案后可以做电影网站吗做网站要注意哪些问题
  • 为什么我的网站在百度搜不到登封郑州网站建设
  • 中国建设部网站能查叉车证wordpress预览
  • 域名申请网页制作网站建设和外国人做古玩生意的网站
  • win7用自己ip做网站邯郸营销型网站建设
  • 织梦免费网站模块下载地址加强网站建设技术培训
  • 网站源码商城建设成都建站优化
  • 网站销售如何做业绩狗狗和人做网站
  • dede 手机站 怎么获取跳转网站安卓软件开发环境
  • 个人网站做什么类型好中国网络安全官网
  • 怎样优化网站排名上传到服务器的网站打开是空白
  • 我的世界做皮肤网站企业网站风格