1 条题解

  • 0
    @ 2026-4-2 20:05:01

    #include <iostream #include <string using namespace std;

    int main() { int n; string s; // 输入字符串长度和括号字符串 cin >> n >> s;

    // 1. 快速判断:长度为奇数,直接不合法
    if (n % 2 != 0) {
        cout << "No" << endl;
        return 0;
    }
    
    // 用变量模拟栈:记录左括号的剩余数量
    int balance = 0;
    bool is_valid = true;
    
    // 2. 遍历字符串
    for (char c : s) {
        if (c == '(') {
            // 遇到左括号,计数+1
            balance++;
        } else {
            // 遇到右括号
            if (balance == 0) {
                // 没有可匹配的左括号,直接不合法
                is_valid = false;
                break;
            }
            // 匹配成功,计数-1
            balance--;
        }
    }
    
    // 3. 最终判断:所有括号匹配完成(balance=0)且无异常
    if (is_valid && balance == 0) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
    
    return 0;
    

    }

    • 1

    信息

    ID
    427
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    384
    已通过
    130
    上传者