对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。
给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。
测试样例:
输入:"(()())",6
返回:true
输入:测试样例:
输入:"()a()()",7
返回:false
测试样例:
输入:"()(()()",7
返回:false
class Parenthesis {
public:
bool chkParenthesis(string A, int n) {
// write code here
int num = 0, idx = 0;
while(idx < n){
switch(A[idx]){
case '(':
++num;
break;
case ')':
if(--num<0){return false;}
break;
default:
if(0 == A[idx]){
return false;
}
break;
}
++idx;
}
return 0 == num ? true : false;
}
};