[编程题] 表达式合法判断
写一段代码,判断一个包括'{','[','(',')',']','}'的表达式是否合法(注意看样例的合法规则。)
给定一个表达式A,请返回一个bool值,代表它是否合法。
测试样例:
"[a+b*(5-4)]*{x+b+b*({1+2)}}"
返回:true
测试样例:
"[a+b*(5-4)]*{x+b+b*(({1+2)}}"
返回:false
class ChkExpression {
public:
bool chkLegal(string str) {
// write code here
stack<char> s ;
for ( int i = 0; i < str.size(); ++ i ) {
if ( str[i] == "{" )
s.push( str[i] ) ;
if ( str[i] == "[" )
s.push( str[i] ) ;
if ( str[i] == "(" )
s.push( str[i] ) ;
if ( str[i] == ")" )
s.pop() ;
if ( str[i] == "]" )
s.pop() ;
if ( str[i] == "}" )
s.pop() ;
}
return s.empty() ;
}
};
注意,string[i] 只能和 ‘ ’ 配合使用,不能和 “ ” 配合使用,不然会报一下错误: