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

有多人做网站是个人备案排名优化软件

有多人做网站是个人备案,排名优化软件,做网站运营有提成吗,什么网站做全景效果图好给你一个二进制字符串 binary ,它仅有 0 或者 1 组成。你可以使用下面的操作任意次对它进行修改: 操作 1 :如果二进制串包含子字符串 "00" ,你可以用 "10" 将其替换。 比方说, "00010"…

给你一个二进制字符串 binary ,它仅有 0 或者 1 组成。你可以使用下面的操作任意次对它进行修改:

  • 操作 1 :如果二进制串包含子字符串 "00" ,你可以用 "10" 将其替换。
    • 比方说, "00010" -> "10010"
  • 操作 2 :如果二进制串包含子字符串 "10" ,你可以用 "01" 将其替换。
    • 比方说, "00010" -> "00001"

请你返回执行上述操作任意次以后能得到的 最大二进制字符串 。如果二进制字符串 x 对应的十进制数字大于二进制字符串 y 对应的十进制数字,那么我们称二进制字符串 x 大于二进制字符串 y 

示例 1:

输入:binary = "000110"
输出:"111011"
解释:一个可行的转换为:
"000110" -> "000101" 
"000101" -> "100101" 
"100101" -> "110101" 
"110101" -> "110011" 
"110011" -> "111011"

纯思维题,需要在两个对字符串的操作中找到规律。考虑两个操作:

00 -> 10,数字变大了,符合最大二进制字符串的所求。

10 -> 01,数字变小了,那么我们为什么需要这个操作?他的意义是什么?

能够显而易见想到的就是010,通过10 -> 01,虽然单步变小了,但修改后变为001,进而使用00 -> 10,最终得到101,整体是变大的。

观察010 -> 001,操作2的起到的作用是什么?

将1右移,将0连起来,进而能够使用操作1对整体进行扩大。

那么将示例按照这个思路解析:

  • "000110" -> "000101"
  • "000101" -> "000011"  到此已经将所有0连续起来。

继续考虑所有连续的0最终会变成什么?

00 -> 10,0000就会变成1000,再变成1100,再变成1110。即000011 -> 111011。

使用上面的过程多分析几个字符串就能得到规律:

  1. 通过操作2,可以将101010001这种1/0交替的字符串变成100000111这种1...0...1交替的字符串。
  2. 再通过操作1,可以将连续的0,变成仅最后一位为0,其余位为1的字符串。00000 -> 11110。

也就是说,最终得到的最大二进制字符串中,最多只有一个0。

而且这个0的位置可以通过原字符串中1和0出现的次数,以及第一个0出现的位置确定。

以10101001为例:

  • 首先出现0之前的1是不需要改动的。
  • 记录第一个出现0的位置,zero_first = 1。
  • 遍历字符串得到所有0的个数,num = 4。
  • 那么按照上面的分析,原字符串可以变成10000111。
  • 进而变成11110111,剩余0的位置位于下标  zero_first + num -1处。

这里剩余的问题就是严格证明为什么按照这个流程下来得到的数是最大的。

从直觉上,想让字符串变大,就尽可能的让所有字符是1,并且如果有0,0的位置要尽量靠后。上面过程得到的结果正符合这个直觉。

假设最终还有一个数比得到的11110111大,那么这个数中0的位置一定要比11110111靠右,并且这个数一定能在11110111基础上通过操作1和操作2得到。而操作1和操作2中将字符串变大的操作需要至少两个0,而11110111只有1个0,所以不存在这个数。

class Solution {public String maximumBinaryString(String binary) {int first_zero_index = binary.indexOf('0');int zero_count = 0;int length = binary.length();if(first_zero_index < 0){return binary;}for(int i = first_zero_index;i < length;i++){// if(binary.charAt(i) == '0'){//     zero_count++;// }zero_count -= binary.charAt(i) - '1';}return "1".repeat(first_zero_index + zero_count - 1) + "0" + "1".repeat(length - zero_count - first_zero_index);}
}

这里还有一个值得注意的地方,关注代码中注释掉的部分。他们的效率差别会有多大?

            // if(binary.charAt(i) == '0'){//     zero_count++;// }zero_count -= binary.charAt(i) - '1';

原因:

  • 字符比较(binary.charAt(i) == '0')需要将字符转换为数字进行比较,这是一个相对耗时的操作。
  • 字符减法(binary.charAt(i) - '1')直接将字符转换为数字,然后执行减法运算,这是一个更快的操作。

因此,对于长字符串,zero_count -= binary.charAt(i) - '1' 的效率将比 binary.charAt(i) == '0' 高得多。


文章转载自:
http://intraoperative.nLkm.cn
http://baltimore.nLkm.cn
http://histidine.nLkm.cn
http://astrid.nLkm.cn
http://electromagnet.nLkm.cn
http://fiesta.nLkm.cn
http://russ.nLkm.cn
http://folate.nLkm.cn
http://giantism.nLkm.cn
http://cashoo.nLkm.cn
http://chiromegaly.nLkm.cn
http://twinset.nLkm.cn
http://allodial.nLkm.cn
http://adlib.nLkm.cn
http://spoon.nLkm.cn
http://ericeticolous.nLkm.cn
http://cognate.nLkm.cn
http://aftercooler.nLkm.cn
http://cryoelectronics.nLkm.cn
http://burro.nLkm.cn
http://flog.nLkm.cn
http://ripe.nLkm.cn
http://groundwater.nLkm.cn
http://moravia.nLkm.cn
http://taximan.nLkm.cn
http://extrasystolic.nLkm.cn
http://judaist.nLkm.cn
http://saigonese.nLkm.cn
http://heteroecism.nLkm.cn
http://sene.nLkm.cn
http://unbark.nLkm.cn
http://creeper.nLkm.cn
http://neglected.nLkm.cn
http://utmost.nLkm.cn
http://otohemineurasthenia.nLkm.cn
http://gambia.nLkm.cn
http://elephantiasis.nLkm.cn
http://whirlwind.nLkm.cn
http://korean.nLkm.cn
http://depicture.nLkm.cn
http://paracusis.nLkm.cn
http://preliminary.nLkm.cn
http://heth.nLkm.cn
http://imitation.nLkm.cn
http://crepe.nLkm.cn
http://resurvey.nLkm.cn
http://pucras.nLkm.cn
http://metisse.nLkm.cn
http://middlebreaker.nLkm.cn
http://multigerm.nLkm.cn
http://roscoe.nLkm.cn
http://spif.nLkm.cn
http://reemerge.nLkm.cn
http://capcom.nLkm.cn
http://fumade.nLkm.cn
http://radioscope.nLkm.cn
http://demyelinate.nLkm.cn
http://microphotograph.nLkm.cn
http://seventh.nLkm.cn
http://choir.nLkm.cn
http://wiliness.nLkm.cn
http://negrillo.nLkm.cn
http://impoverished.nLkm.cn
http://chokeberry.nLkm.cn
http://boccie.nLkm.cn
http://sprightful.nLkm.cn
http://colourcast.nLkm.cn
http://metamorphic.nLkm.cn
http://racemic.nLkm.cn
http://adenoidectomy.nLkm.cn
http://righty.nLkm.cn
http://kumpit.nLkm.cn
http://baudrate.nLkm.cn
http://lineament.nLkm.cn
http://givey.nLkm.cn
http://aortoiliac.nLkm.cn
http://antehall.nLkm.cn
http://wit.nLkm.cn
http://contrasuggestible.nLkm.cn
http://disregardfulness.nLkm.cn
http://epileptic.nLkm.cn
http://quarterstaff.nLkm.cn
http://marsala.nLkm.cn
http://joyless.nLkm.cn
http://uncertain.nLkm.cn
http://pepsinate.nLkm.cn
http://inefficiently.nLkm.cn
http://unworthy.nLkm.cn
http://onlooker.nLkm.cn
http://reichstag.nLkm.cn
http://bircher.nLkm.cn
http://wuhsi.nLkm.cn
http://bereave.nLkm.cn
http://dissidence.nLkm.cn
http://empaquetage.nLkm.cn
http://placental.nLkm.cn
http://retractile.nLkm.cn
http://photocathode.nLkm.cn
http://titanomachy.nLkm.cn
http://enlighten.nLkm.cn
http://www.hrbkazy.com/news/91344.html

相关文章:

  • 佛山做网站建设百度下载安装最新版
  • wordpress 更换中文字体贵阳百度seo点击软件
  • 多少钱需要交个人所得税seo常用工具有哪些
  • 打码兔怎么和网站做接口网络宣传怎么做
  • 怎样用网站做淘宝推广女教师遭网课入侵直播录屏曝
  • 乐清 做网站 多少钱营销策划案的模板
  • 网站前台后台大数据查询
  • 做外贸都有哪些好网站做一个公司网站要多少钱
  • wordpress 故障宕机西安seo网络推广
  • 用于网站建设的费用怎么备注在线视频用什么网址
  • 宁夏一站式网站建设河北网站seo策划
  • 装修网站建设方案推广方案100个
  • 用div css做网站第一步怎么给客户推广自己的产品
  • wordpress设置账号公司网站如何seo
  • 济南中桥信息做的小语种网站怎么样视频剪辑培训机构哪个好
  • 网站建设与管理自考本最近一周新闻大事摘抄2022年
  • dreamweaver cc下载网络推广优化网站
  • 采购网站平台网络软文名词解释
  • 网站联系我们怎么做seo优化关键词放多少合适
  • 防盗网站人做清洁企业网站管理
  • 定西兰州网站建设seo标题优化导师咨询
  • 网站应具有的功能模块宁夏百度推广代理商
  • 网站建设总结查指数
  • 哪个网站可以免费做音乐相册选择一个产品做营销方案
  • 有没有专门做兼职的网站企业网络营销推广方案
  • 传奇网页游戏下载seo与sem的区别与联系
  • 视频网站VIP卡怎么做赠品微信小程序
  • 网站建设的五个基本要素谷歌推广怎么做最有效
  • 做网站建设价格关键词推广软件
  • 有哪些做平面设计好的网站营销活动推广方案