栈相关解法
- 题目意思有点没有描述清楚,但从AC情况来看,我理解正确了
- 1、只用是(和)括号,不需要考虑{}和[]这样的
- 2、出现了除了()之外的字符,就不合法
- 3、要满足括号匹配
下面代码,顺路考虑了代码“健壮性”
- throw "invalid case";
class Parenthesis {
public:
bool chkParenthesis(string A, int n) {
// write code here
int len=A.size();
if( len<0 )
{
//代码健壮性,不合法样例
throw "invalid case";
}
if( 0==len )
{
return true;
}
stack<char> st;
for(int i=0; i<len; ++i)
{
if( '('==A[i] )
{
st.push( A[i] );
}
else if( ')'==A[i] )
{
if( st.size()<=0 )
{
return false;
}
else
{
st.pop();
}
}
else
{
//不合法数字
return false;
}
}
if( st.empty() )
{
return true;
}
else
{
return false;
}
}
}; 
京公网安备 11010502036488号