讨论/题目交流/🏆 第 161 场力扣周赛/
🏆 第 161 场力扣周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛

image.png

4 分 - 交换字符使得字符串相同
4 分 - 统计「优美子数组」
5 分 - 移除无效的括号
6 分 - 检查「好数组」

展开讨论

第一题把我做废了...

    int minimumSwap(string s1, string s2) {
        int ans = 0, n = s1.size();
        int cnt1 = 0,cnt2 = 0;//统计有多少对x-y和y-x
        for(int i = 0; i < n; i++){
            if(s1[i]=='x'&&s2[i]=='y') cnt1++;
            else if(s1[i]=='y'&&s2[i]=='x') cnt2++;
        }
        //对于每一对 x-y 和 x-y 以及 y-x 和 y-x 都只需要一次操作即可完成匹配
        ans += cnt1/2+cnt2/2;//所需要的操作数
        cnt1%=2;//剩余未匹配的对数
        cnt2%=2;
        if(cnt1+cnt2==1) return -1;//只剩一个时无法匹配
        else if(cnt1+cnt2==2) ans+=2;//只剩了x-y和y-x 需要两次匹配
        return ans;
    }
2
展开全部 25 讨论