题目描述
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。
给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。
测试样例:
“(()())”,6
返回:true
测试样例:
“()a()()”,7
返回:false
测试样例:
“()(()()”,7
返回:false
class Parenthesis {
public:
bool chkParenthesis(string A, int n) {
// write code here
int _left=0;
int _right=0;
for(int i=0;i<n;i++)
{
if(A[i]=='(')
_left++;
else if(A[i]==')')
_right++;
}
if(_left!=_right)
return false;
stack<char> s_c;
for(int i=0;i<n;i++)
{
if(A[i]=='(')
s_c.push(A[i]);
else if(A[i]==')')
if(s_c.top()=='(')
s_c.pop();
else
return false;
}
return true;
}
};