习题6_1 平衡的括号(Parentheses Balance, UVa 673)

Posted As_zyh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了习题6_1 平衡的括号(Parentheses Balance, UVa 673)相关的知识,希望对你有一定的参考价值。

题目描述:

输入一个包含"()“和”[]"的括号序列,判断是否合法。具体规则如下:
        空串合法。
        如果A和B都合法,则AB合法。
        如果A合法,则(A)和[A]都合法。

AC代码:

#include<cstdio>
#include<stack>
#include<cstring>
using namespace std;

char a[150];

void get_input() {
	memset(a, '\\0', sizeof(a));
	char c;
	int idx = 0;
	while((c=getchar()) != '\\n') {
		a[idx++] = c;
	}
}

int main() {
	int n;
	scanf("%d", &n);
	getchar();
	while(n--) {
		get_input();
		stack<char> s;
		int len = strlen(a);
		for(int i = 0; i < len; i++) {
			if(a[i] == '(' || a[i] == '[') s.push(a[i]);
			else if(!s.empty()) {
				char c = s.top();
				if(c == '(' && a[i] == ')') s.pop();
				if(c == '[' && a[i] == ']') s.pop();
			} else {
				if(a[i] == ')' || a[i] == ']') s.push(a[i]);
			}
		}
		if(s.empty()) printf("Yes\\n");
		else printf("No\\n");
	}
	return 0;
}

以上是关于习题6_1 平衡的括号(Parentheses Balance, UVa 673)的主要内容,如果未能解决你的问题,请参考以下文章

习题 6-1 UVA-673Parentheses Balance

leetcode 856. 括号的分数(Score of Parentheses)

Leetcode 856. Score of Parentheses 括号得分(栈)

LeetCode 0856. 括号的分数

平衡的括号[UVA-673]

b_lc_平衡括号字符串的最少插入次数(先加后分类讨论)