目录😋
任务描述
相关知识
测试说明
我的通关代码:
测试结果:
任务描述
本关任务:编写一个程序利用栈判断左、右圆括号是否配对。
相关知识
为了完成本关任务,你需要掌握:栈对括号的处理。
-
栈对括号的处理
(1)遇到左括号:进栈Push()
(2)遇到右括号:若栈顶元素为左括号,则出栈Pop();否则返回false。
(3)当遍历表达式结束,且栈为空时,则返回true,否则返回false。
测试说明
平台会对你编写的代码进行测试:
测试输入:(())
预期输出:配对
测试输入:(()))
预期输出:不配对
开始你的任务吧,祝你成功!
我的通关代码:
// 请在Begin-End之间添加你的代码,
//利用栈判断左、右圆括号是否配对//
//(1)如果配对,返回true,输出“配对”//
//(2)如果不配对,返回false,输出“不配对”//
/********** Begin *********/
#include <iostream>
#include <stack>
#include <string>using namespace std;bool areParenthesesBalanced(const string &expression){stack<char> s;for(char ch : expression){if(ch == '('){s.push(ch);}else if(ch == ')'){if(s.empty()||s.top() != '('){return false;}s.pop();}}return s.empty();
}int main(){string input;cin >> input;if(areParenthesesBalanced(input)){cout<<"配对"<<endl;}else{cout<<"不配对"<<endl;}return 0;
}/********** End **********/