巧用 using namespace std,C++ 实现 6 种括号字符串合法性判断
以下是添加 `using namespace std;` 并使用更符合你需求输入方式的 C++ 代码,用于判断由 6 种括号字符组成的字符串是否为合法括号序列: ```cpp #include <iostream> #include <stack> #include <string> using namespace std; // 判断字符串是否为合法括号序列 bool isValid(const string& s) { stack<char> st; for (char c : s) { if (c == '(' || c == '[' || c == '{') { st.push(c); } else { if (st.empty()) return false; char top = st.top(); st.pop(); if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) { return false; } } } return st.empty(); } int main() { int T; cin >> T; for (int i = 0; i < T; ++i) { string s; cin >> s; if (isValid(s)) { cout << "YES" << endl; } else { cout << "NO" << endl; } } return 0; } ``` 代码说明: 1. `isValid` 函数: - 该函数接收一个字符串 `s` 作为参数,用于判断该字符串是否为合法括号序列。 - 使用 `stack<char>` 类型的栈 `st` 来辅助判断。 - 遍历字符串中的每个字符: - 若字符为左括号(`(`, `[`, `{`),将其压入栈中。 - 若字符为右括号(`)`, `]`, `}`),检查栈是否为空。若为空,说明没有匹配的左括号,返回 `false`;若不为空,弹出栈顶元素,检查其是否与当前右括号匹配,若不匹配则返回 `false`。 - 遍历结束后,若栈为空,说明所有左括号都有匹配的右括号,返回 `true`;否则返回 `false`。 2. `main` 函数: - 首先读取一个整数 `T`,表示测试数据的组数。 - 通过 `for` 循环 `T` 次,每次读取一个字符串 `s`。 - 调用 `isValid` 函数判断该字符串是否合法,根据结果输出 `YES` 或 `NO`。 复杂度分析: - 时间复杂度:$O(n)$,其中 $n$ 是输入字符串的长度,因为需要遍历字符串一次。 - 空间复杂度:$O(n)$,主要是栈的空间开销,最坏情况下栈的深度为 $n$。 ######[AI问答 | 656点数解答 | 2025-12-04 18:06:29]
- 解决窗体界面设计中Invoke/BeginInvoke调用错误:完整方案及注意要点(DeepSeek | 562点数解答 | 2025-07-09 16:57:56)209
- C++与C语言代码:文章中查找单词次数及位置的问题分析与改进方案(字节豆包 | 1381点数解答 | 2025-12-15 17:32:28)51
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)484
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)472
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)408
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)433
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)82
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)113
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- 超简易!C# 搭建教学管理系统,涵盖课程与学生管理(字节豆包 | 419点数解答 | 2024-10-24 17:49:32)265
- 根据气温判断衣服类型的C++代码实现(字节豆包 | 281点数解答 | 2026-03-07 19:37:35)23
- 去掉代码备注:计算 f(a) + f(b) + f(c) 的简洁代码实现(字节豆包 | 150点数解答 | 2026-03-14 20:04:24)12