首页 > 其他分享 >2938. 区分黑球与白球 Medium

2938. 区分黑球与白球 Medium

时间:2024-06-07 19:02:13浏览次数:16  
标签:Medium 交换 long 次数 黑球 白球 字符串 右侧 倒数第

桌子上有 n 个球,每个球的颜色不是黑色,就是白色。

给你一个长度为 n 、下标从 0 开始的二进制字符串 s,其中 1 和 0 分别代表黑色和白色的球。

在每一步中,你可以选择两个相邻的球并交换它们。

返回「将所有黑色球都移到右侧,所有白色球都移到左侧所需的 最小步数」。

示例 1:

输入:s = "101"
输出:1
解释:我们可以按以下方式将所有黑色球移到右侧:
- 交换 s[0] 和 s[1],s = "011"。
最开始,1 没有都在右侧,需要至少 1 步将其移到右侧。

示例 2:

输入:s = "100"
输出:2
解释:我们可以按以下方式将所有黑色球移到右侧:
- 交换 s[0] 和 s[1],s = "010"。
- 交换 s[1] 和 s[2],s = "001"。
可以证明所需的最小步数为 2 。

示例 3:

输入:s = "0111"
输出:0
解释:所有黑色球都已经在右侧。

提示:

 ·1 <= n == s.length <= 105

 ·s[i] 不是 '0',就是 '1'

题目大意:在每次操作只能交换相邻字符的情况下计算将0全都移到最左边需交换的最少次数。

分析:设字符串长度为N

(1)将所有0移到最左边等同于将所有1移到最右边;

(2)原字符串中最右边的1移动到最终字符串的最后1个字符时交换次数最少,同理原字符串中倒数第2个1移动到最终字符串的倒数第2个字符时交换次数最少;

(3)由(2)可得,原字符串中倒数第k个1移动到最终字符串的倒数第k个字符时交换次数最少,因此设原字符串中倒数第k个1的下标为i(从0开始),则这个1的交换次数为N-k-i时,总的交换次数最少。

class Solution {
public:
    long long minimumSteps(string s) {
        long long ans=0;
        for(int N=s.size(),i=N-1,count=0;i>=0;--i){
            if(s[i]=='1') ans+=N-(++count)-i;
        }
        return ans;
    }
};

标签:Medium,交换,long,次数,黑球,白球,字符串,右侧,倒数第
From: https://blog.csdn.net/m0_60444839/article/details/139493110

相关文章

  • SSL Medium Strength Cipher Suites Supported (SWEET32)漏洞修复
    近期对公司开发环境的机器进行了安全扫描,在扫描安全报告中出现了SSLMediumStrengthCipherSuitesSupported(SWEET32)漏洞,汇报后领导表示需要进行修复,特记录此漏洞修复的过程。漏洞产生的原因漏洞的原因主要是由于SSL/TLS协议中使用的DES(DataEncryptionStandard)及Trip......
  • Quill文档(四):使用Parchment克隆Medium
    为了提供一致的编辑体验,您需要一致的数据和可预测的行为。不幸的是,DOM缺乏这两个特性。现代编辑器的解决方案是维护自己的文档模型来表示它们的内容。对于Quill来说,Parchment就是这样的解决方案。它在自己的代码库中组织,并拥有自己的API层。通过Parchment,您可以定制Quill识别......
  • hackthebox carrier medium
    ReconNMAPSCANnamp-sT-p---min-rate1000-oAnmap/ports10.10.10.10522/tcpopenssh80/tcpopenhttpnmap-sT-pxx,xx-sV-oAnmap/version10.10.10.105nmap-sU-p---min-rate1000-oAnmap/udp10.10.10.105port161/udpopensnmpnmap-sU-pxx-sV-oA......
  • Medium Design
    思路一:见这篇题解,当然只用看step3之后的就好了思路二:我使用的是转换对象法。从线段的角度不好考虑,我们从元素的角度考虑如果我们已经确定了一个元素\(a_i\)为最大值,我们考虑所有线段如果一个线段不包含\(a_i\),那么肯定不选择,因为他不会让最大值增加,反而可能会让最小值增加如......
  • 【HTB】Sherlocks Ore 蓝队 medium
    task1问题:哪个CVE导致了EC2的最初泄露?#文件放在~/htb/Ore目录cdusr/share/grafanals-lacatVERSION #8.2.0搜索grafana8.2.0exploit可得CVE-2021-43798答案:CVE-2021-43798task2问题:请详细说明针对我们组织的威胁行为者(TA)使用的所有恶意IP地址......
  • hackthebox sandworm medium writeup
    Thisisthewriteupforthemediummachine'onlyrforyou'.Topiccoveredinthisarticleare: LFI,commnadinjection,neo4jcipherinjection,maliciouspythonpackagesandcodeexecutionviapipdownload.ShellasuserSubdomainenumeration:ffuf......
  • E2. Minibuses on Venus (medium version)(卷积加速dp)
    数的范围是在k进制下的n位数一个数是lucky的当且仅当在k进制下,存在一个数位上的数,等于其他数位上的数在模k意义下的和。利用减法原理假设一个数的数位和为s,如果存在一个数,那么有s-x%k=x%k->s%k=2x%k那么我们找到这样的x,就是说在计算和为s的方案数是不能使用这些x类似于dp......
  • hackthebox outdated windows medium
    CONNECTbetweenwindowsandlinuxBloodhoundCollectionGrabthelatestcopyofSharpHound.exefromtheBloodhoundrepo,uploadittoOutdated,workingoutofC:\programdataiwrhttp://10.10.14.5:8888/SharpHound.exe-outfiles.exe.\s.exe-Call2022-0......
  • CF1884C Medium Design
    CF1884CMediumDesign翻译首先可以想到一个性质:覆盖\(\min\)的区间加上一定不优。因此考虑以每个点为\(\max\),判断包含这个位置的所有线段中和的最小值然后就不会了\(QwQ\)原来这里还有一个性质:最小值一定是\(\min(a_1,a_m)\),因为假设作为\(\max\)的点为\(x\),\(1\)......
  • hackthebox broscience medium
    Brieflyinstruction:Thistime,thetargetmachineencoutersomeurlcoding,phpcodeauditfounddeserialization,scriptwritingaccordingtothecontent,pgsqlinjection,hashcatblastingwithsaltvalueandpspyfoundautomaticallyrunscripts.Afterauditin......