괄호 비교

1943 단어 데이터 구조
괄호 일치
괄호 일치 문 제 는 주로 창고 의 운용 이다.[,], (,), {,} 로 구 성 된 문자열 을 입력 하여 일치 하 는 지 여 부 를 판단 하 십시오. 예 를 들 어 [], [()] 는 일치 하 는 것 이 고 [{] 등 은 일치 하지 않 습 니 다.
코드 는 이렇게 할 수 있 습 니 다.

#include<iostream>
#include<stack>
#include<string>
using namespace std;

bool brackets(string s);

int main()
{
	string s;
	while(cin>>s)
	{
		if(brackets(s))
			cout<<"Yes"<<endl;
		else
			cout<<"No"<<endl;
	}
	return 0;
}

bool brackets(string s)
{
	stack<char> st;
	char ch;
	for(int i = 0;i < s.size();i++)
	{
		switch (s[i])
		{
			case '(':st.push('(');break;
			case '[':st.push('[');break;
			case '{':st.push('{');break;

			case ')':
			{
				if(st.empty())
					return false;
				else
				{
					ch = st.top();
					if(ch == '(')
					{
						st.pop();
						break;
					}
					else 
						return false;
				}
			}

			case ']':
			{
				if(st.empty())
					return false;
				else
				{
					ch = st.top();
					if(ch == '[')
					{
						st.pop();
						break;
					}
					else 
						return false;
				}
			}

			case '}':
			{
				if(st.empty())
					return false;
				else
				{
					ch = st.top();
					if(ch == '{')
					{
						st.pop();
						break;
					}
					else 
						return false;
				}
			}
			default: 
				break;
		}
	}
	if(!st.empty())
		return false;
	
	return true;
}

좋은 웹페이지 즐겨찾기