c++输入(() 输出NO
时间: 2023-12-15 19:05:30 浏览: 70
C++ 输入输出
可以通过栈来判断括号的匹配情况。遍历字符串,遇到左括号入栈,遇到右括号则弹出栈顶元素,若栈顶元素不是对应的左括号,则说明括号不匹配,返回NO。
以下是示例代码:
```c++
#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool isMatch(char left, char right) {
if (left == '(' && right == ')') return true;
return false;
}
bool isValid(string s) {
stack<char> st;
for (char c : s) {
if (c == '(') {
st.push(c);
} else if (c == ')') {
if (st.empty() || !isMatch(st.top(), c)) {
return false;
}
st.pop();
}
}
return st.empty();
}
int main() {
string s = "(()";
if (isValid(s)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
```
输出结果为 NO。
阅读全文