用栈判断是否是平衡括号 Check for balanced parentheses using stack

bool CheckBlancedParentheses(char* ch)
{
	if(NULL == ch)
		return false;
	stack  s;
	char* tmp = ch;
	while(*tmp)
	{
		if( '(' == *tmp || '[' == *tmp || '{' == *tmp)
			s.push(*tmp);
			
		else if( ')' == *tmp)
		{
			if(s.empty())
				return false;
			else if('(' != s.top())
				return false;
			else s.pop();
		}
		else if( ']' == *tmp)
		{
			if(s.empty())
				return false;
			else if('[' != s.top())
				return false;
			else s.pop();
		}
		else if( '}' == *tmp)
		{
			if(s.empty())
				return false;
			else if('{' != s.top())
				return false;
			else s.pop();
		}
		
		tmp++;
	}
	if(s.empty())
		return true;
	return false;
}

你可能感兴趣的:(Coding,Interview)