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

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

image.png

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

展开讨论

只能占个第一题的坑,大佬们怎么能那么快看出规律的啊
这第一题不能算easy吧,这规律不找出来都不好写,第三个example眼睛都快看花了
剩下的几题是大佬们的showtime。

/**
 **   思路:统计(x,y)和(y,x)对的数量,如若都是偶数,则(x,y)(y,x)两两可以相互调换即可;如若是奇数,则最后
 **         必然剩余一对(x,y)(y,x),这种情况需要调换两次,则在统计的基础上+2即可;其他情况,则不可能调换成功
**/
class Solution {
    public int minimumSwap(String s1, String s2) {
        int sum=0,sum1=0;
        for (int i=0;i<s1.length();i++) {
            if (s1.charAt(i)=='x'&&s1.charAt(i)!=s2.charAt(i)) {
                // x,y对的数量
                sum++;
            } else if (s1.charAt(i)=='y'&&s1.charAt(i)!=s2.charAt(i)) {
                // y,x对的数量
                sum1++;
            }
        }
        
        int mod=sum%2;
        int mod1=sum1%2;
        
        if (mod!=mod1) {
            return -1;
        } else {
            return (mod==1)?(sum/2+sum1/2+2):(sum/2+sum1/2);
        }
    }
}
展开全部 25 讨论