UVA 673-Parentheses Balance
题目大意:1 A =[]或()算正确 2 A为BC(B,C都是正确的话)算正确 3 A = [M]或(M)(M为正确的话)算正确
解题思路:用栈存([,遇到)]相消
#include <stdio.h>
#include <iostream>
#include <stack>
using namespace std;
int main() {
int n;
char a;
cin >> n;
getchar();
while(n--) {
stack<int> s;
int r = 1;
while((a = getchar()) != '\n') {
if(a == '(' || a == '[')
s.push(a);
else if(a == ')') {
if(!s.empty() && s.top() == '(')
s.pop();
else {
r = 0;
}
}
else if(a == ']') {
if(!s.empty() && s.top() == '[')
s.pop();
else {
r = 0;
}
}
}
if(!s.empty())
r = 0;
if(r == 0)
printf("No\n");
else
printf("Yes\n");
}
return 0;
}

本文介绍了一种解决UVA673括号平衡问题的方法,通过使用栈来判断输入字符串中括号是否正确配对,并提供了一个完整的C++实现示例。

644

被折叠的 条评论
为什么被折叠?



