第64天(中等题 数据结构)

打卡第六十四天
2道中等题
image

题目:
image

思路:用栈消除所有已经匹配的[]对,剩下的都是无法匹配的括号

代码:

class Solution {
public:
    int minSwaps(string s) {
        stack<char> stk;
        for (char num : s) {
            if (!stk.empty() && stk.top() == '[' && num == ']') {// 如果栈不为空,且栈顶是'[',当前字符是']'
                stk.pop();  // 弹出匹配的左括号
            } 
            else {
                stk.push(num);  // 将当前字符压入栈中
            }
        }
        int len = stk.size() / 2;// 括号成对出现,栈大小一定是偶数
        return (len + 1) / 2;// 对于未匹配的k对括号,最少需要交换 (k + 1) / 2 次
    }
};

耗时≈一小时 明天继续

posted @ 2025-12-24 00:01  Wy0518  阅读(2)  评论(0)    收藏  举报