면접 문제: 스 택 - 괄호 일치

스 택 적용: 괄호 일치
원본 링크:https://leetcode-cn.com/problems/valid-parentheses/
괄호 일치: 문자열 의 모든 문 자 를 순서대로 옮 겨 다 닙 니 다. 왼쪽 괄호 스 택 이 라면 오른쪽 괄호 로 현재 스 택 이 빈 스 택 인지 여 부 를 판단 합 니 다. 오른쪽 괄호 가 왼쪽 괄호 보다 많 습 니 다.        return false
스 택 괄호 (왼쪽 괄호) 를 꺼 내 왼쪽 괄호 와 오른쪽 괄호 를 일치 시 키 지 않 으 면                return false 스 택 상단 의 왼쪽 괄호 팝 업
만약 창고 안에 왼쪽 괄호 가 있다 면, 왼쪽 괄호 가 많다.        return false
return true    
 
코드 는 다음 과 같 습 니 다:
bool isValid(string s)
{
	stack stack_ch;
	int size = s.size();    //         
	for (int i = 0; i < size; i++)
	{
		char ch = s[i];
		switch (ch)
		{
		case '(':
		case '[':
		case '{':
			stack_ch.push(ch);
			break;
		case ')':
		case ']':
		case '}':{
					 if (stack_ch.empty())
					 {
						 return false;
					 }
					 char left = stack_ch.top();
					 if (!((left == '(' && ch == ')')  //        	
						 || (left == '[' && ch == ']')
						 || (left == '{' && ch == '}'))) 
					 {

						 return false;
					 }
					 stack_ch.pop();
					 break;
				 }
		default:
			break;
		}
		if (!stack_ch.empty()) {
			return false;
		}
		else {
			return true;
		}
	}
}

좋은 웹페이지 즐겨찾기