首页 > 试题广场 >

Problem E

[编程题]Problem E
  • 热度指数:4348 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
请写一个程序,判断给定表达式中的括号是否匹配,表达式中的合法括号为”(“, “)”, “[", "]“, “{“, ”}”,这三个括号可以按照任意的次序嵌套使用。

输入描述:
有多个表达式,输入数据的第一行是表达式的数目,每个表达式占一行。


输出描述:
对每个表达式,若其中的括号是匹配的,则输出”yes”,否则输出”no”。
示例1

输入

4
[(d+f)*{}]
[(2+3))
()}
[4(6]7)9

输出

yes
no
no
no
头像 用户抉择
发表于 2021-03-30 21:03:30
#include<stack> #include<iostream> #include<string> using namespace std; int main() {     int&nbs 展开全文
头像 KDDA十三尧十三
发表于 2022-02-01 15:59:36
#include<iostream> #include<stack> #include<vector> using namespace std; //用栈进行括号匹配,只对(,[,{,进行压栈,对),],}进行与栈顶的匹配 int m 展开全文
头像 牛客202199025号
发表于 2024-03-02 14:16:36
#include <iostream> #include <stack> using namespace std; int main() { int a; int flag = 1; string expression; stack<c 展开全文
头像 marlin818
发表于 2024-03-12 19:32:50
//debug了好久 #include <iostream> #include <stack> using namespace std; int main(){ int n; stack<char> op; cin>>n; 展开全文
头像 wbc990512
发表于 2021-01-26 15:20:58
栈tips:注意栈顶指针的使用,是先入栈再增加栈顶指针还是先增加栈顶指针再入栈要考虑清楚;最后判断是否匹配的时候,由于我预先设置的flag为1,所以如果遇到全部为左括号时,跳出循环依旧是flag=1,要再增加一个栈为空的条件。 #include<stdio.h> #include< 展开全文
头像 踏实的布莱恩在做测评
发表于 2024-03-21 10:47:45
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; while (n--) { string str; cin > 展开全文
头像 路人萌Miranda
发表于 2022-03-15 23:50:01
#include <iostream> #include <stack> #include <string> using namespace std; int main() { int n = 0; scanf("%d", &n); for(in 展开全文
头像 bigbigcake
发表于 2024-03-16 11:08:44
#include <bits/stdc++.h> using namespace std; int bracketNum(char c) { if (c == '(')return 1; if (c == ')')return -1; if (c == '[')r 展开全文

问题信息

上传者:小小
难度:
28条回答 3034浏览

热门推荐

通过挑战的用户

查看代码