首页 > 其他分享 >leetcode324场周赛

leetcode324场周赛

时间:2023-11-20 11:55:57浏览次数:27  
标签:周赛 示例 int s2 s1 s3 字符串 leetcode324

一、使三个字符串相等

给你三个字符串 s1s2s3。 你可以根据需要对这三个字符串执行以下操作 任意次数

在每次操作中,你可以选择其中一个长度至少为 2 的字符串 并删除其 最右位置上 的字符。

如果存在某种方法能够使这三个字符串相等,请返回使它们相等所需的 最小 操作次数;否则,返回 -1

示例 1:

输入:s1 = "abc",s2 = "abb",s3 = "ab"
输出:2
解释:对 s1 和 s2 进行一次操作后,可以得到三个相等的字符串。
可以证明,不可能用少于两次操作使它们相等。

示例 2:

输入:s1 = "dac",s2 = "bac",s3 = "cac"
输出:-1
解释:因为 s1 和 s2 的最左位置上的字母不相等,所以无论进行多少次操作,它们都不可能相等。因此答案是 -1 。

提示:

  • 1 <= s1.length, s2.length, s3.length <= 100
  • s1s2s3 仅由小写英文字母组成。

第一题老规矩就是个暴力模拟。上屎山:

class Solution {
public:
    int findMinimumOperations(string s1, string s2, string s3) {
        int ans = 0;
        
        if(s1==s2 && s2 ==s3)
        {
            return ans;
        }
        int a = s1.size();
        int b = s2.size();
        int c = s3.size();
        
        int temp = min(a,min(b,c));
        
        if(s1[0] != s2[0] || s2[0]!=s3[0])
        {
            return -1;
        }
        
        
        for(int i=0;i<temp;i++)   //相同几位
        {
            if(s1[i] == s2[i] && s2[i]==s3[i])   
            {
                ans++;
            }
            else
            {
                break;
            }
        }
        int x=0;
        x+=a-ans;
        x+=b-ans;
        x+=c-ans;
        return x;
    }
};

二、区分黑球与白球

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

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

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

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

示例 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之前有几个一即可。例子:

image-20231120114033082

详细分析:

image-20231120114432767

因此这题脑子转过来就简单了,代码如下:

class Solution {
public:
    long long minimumSteps(string s) {
        long long ans = 0;
        int cnt =0;
        for(char c:s)
        {
            if(c == '1')
            {
                cnt++;
            }
            else
            {
                ans+=cnt;
            }
        }

        return ans;
    }
};

两题打卡下班。

标签:周赛,示例,int,s2,s1,s3,字符串,leetcode324
From: https://www.cnblogs.com/dwinternet/p/17843621.html

相关文章

  • 第 372 场周赛(位运算技巧,跳表 + 二分,线段树)
     classSolution:deffindMinimumOperations(self,s1:str,s2:str,s3:str)->int:cnt=0fora,b,cinzip(s1,s2,s3):ifnota==b==c:breakcnt+=1ifcnt==0:......
  • Acwing.第130场周赛
    Acwing.第130场周赛比赛链接A.最大数和最小数题目链接思路:简单模拟,使用max()和min()函数就可以了代码:#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ inta,b,c; cin>>a>>b>>c; cout<<max(a,max(b,c))<<""<<min(a,min(b,c))<......
  • bupt ai院第一次周赛题解
    题目一简单模拟题点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineebkemplace_back#definexfirst#defineysecondtypedefpair<int,int>PII;typedeflonglongll;typedefunsignedlonglongull;typedefvector<string>VS;typedef......
  • LeetCode 第 115 场双周赛
    2899.上一个遍历的整数感觉读题比较困难classSolution{public:vector<int>lastVisitedIntegers(vector<string>&words){vector<int>res,a;for(inti=0,cnt=0,x;i<words.size();i++){if(words[i......
  • 第 117 场双周赛(容斥原理,记忆化搜索,排序)
     本题我们采用隔板法+容斥原理来解决合格总方案数=总方案书-不合理的方案数=不考虑limit的方案数-不合法方案数(至少有一个小朋友>limit)任意方案数n个小球放到3个盒子中->n+2个位置,选两个位置放隔板剩下位置放球c(n+2,2)三个小朋友为:甲乙丙小朋友甲(乙丙)>l......
  • Acwing.第 129 场周赛
    Acwing.第129场周赛比赛地址A.字符串题目思路:只需要用到reverse()反转函数就可以代码:#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ strings; cin>>s; reverse(s.begin(),s.end()); cout<<s<<endl; }intmain(){ intt=1; while(t--){ solv......
  • 【LC周赛-371】 D. Trie树求最大异或对
    【LC周赛-371】D.Trie树求最大异或对题意给一个数组,求两个数满足|x-y|<=min(x,y)的异或最大值。题解从|x-y|<=min(x,y)知道,每个y可以考虑的x范围是y/2<=x<y;然后Trie树实现更优复杂度内,从窗口获得最大异或值思路就是高位依次取值,具体看代码吧代码constint......
  • 第371场周赛
    至少在态度上有进步昨天参加了今天也参加了  跟昨晚的类似第一题和第四题都是一样的但是plus版要求时间复杂度给你一个下标从 0 开始的整数数组 nums 。如果一对整数 x 和 y 满足以下条件,则称其为 强数对 :|x-y|<=min(x,y)你需要从 nums 中选出两个......
  • 第117场双周赛-3min签到题,然后做不了一点
     给你两个正整数 n 和 limit 。请你将 n 颗糖果分给 3 位小朋友,确保没有任何小朋友得到超过 limit 颗糖果,请你返回满足此条件下的 总方案数 。 示例1:输入:n=5,limit=2输出:3解释:总共有3种方法分配5颗糖果,且每位小朋友的糖果数不超过2:(1,2,2),(2......
  • Acwing.第128场周赛
    Acwing.第128场周赛比赛地址A长方体题目思路:知道长方体的体积计算公式即可,就是一个比较简单的模拟代码:#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ inta,b,c; cin>>a>>b>>c; cout<<a*b*c<<endl; return; }intmain(){ intt=1; while(t--){ ......