编程题——合法括号序列
题目描述:
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。
给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。
示例1:
输入
(()())
6
输出
true示例2:
输入
()a()()
7
输出
false示例3:
输入
()(()()
7
输出
false
程序代码如下:
#include <iostream>
#include <string>
#include <stack>
using namespace std;
/*这道题目比较简单,要求输入只能是括号且括号匹配,我们用栈就可以轻松解决
*遍历字符串,当遇到'('时压入栈中
*遇到')'时判断栈是否为空及栈顶元素是否为(
* 如果栈为空或栈顶不为'('说明没有与左括号匹配的右括号,return false;
* 否则,将栈顶'('出栈
*其他字符返回false
*遍历结束后判断栈是否为空
* 栈为空,说明括号匹配,return true;
* 栈不为空,说明括号不匹配,左括号多,return fa