Leetcode/Top 100 Liked

[Stack][Easy] 20. Valid Parentheses

자전거통학 2024. 4. 21. 03:35

https://leetcode.com/problems/valid-parentheses/description

 

Q. 주어진 문장 s 에 (, {, [, ], }, ) 가 있다. 

 이 문장이 유효한지 판단하라. 

 

Solution. 

 Parentheses 문제가 나오면 대부분 stack을 쓴다. 

 그 중에 쉬운축에 속하는 문제. 

 

 닫히는 기호가 나올 때 stack안의 top이 그에 상응하는 기호를 가지고 있는 지 판단한다. 

 

더보기
public bool IsValid(string s) 
{  
    Stack<char> sBuff = new Stack<char>();
    for(int k = 0; k < s.Length; ++k)
    {
        if(s[k]==')' || s[k]=='}' || s[k]==']')
        {
            if(sBuff.Count == 0)    return false;

            char top = sBuff.Pop();
            if(s[k]==')' && top!='(')   return false;
            if(s[k]=='}' && top!='{')   return false;
            if(s[k]==']' && top!='[')   return false;
        }
        else sBuff.Push(s[k]);
    }
    return sBuff.Count==0;
}

 

적절한 결과를 얻었다.