1 条题解
-
0
#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;}
信息
- ID
- 427
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 384
- 已通过
- 130
- 上传者