본문 바로가기

서적/리트코드

C# 리트코드 20. Valid Parentheses

728x90
반응형

검색 답안

public class Solution
{
  public bool IsValid(string s)
  {
    Stack<Char> st = new Stack<Char>();
    
    for (int i = 0; i < s.Length; i++)
    {
      Char c = s[i];
      Char item;
      
      if (c == '(' || c == '{' || c == '[')
      {
        st.Push(c);
      }
      else
      {
        try
        {
          item = st.Pop();
        }
        catch (Exception e)
        {
          return false;
        }
        
        if (
          (c == ')' && item != '(') || 
          (c == '}' && item != '{') || 
          (c == ']' && item != '['))
        {
            return false;
        }
      }
    }
    
    return st.Count == 0;
  }
}
Stack<Char> st = new Stack<Char>(); // 선언

st.Push(c); // push
st.Pop(); // pop

st.Count; // st 크기
728x90
반응형

'서적 > 리트코드' 카테고리의 다른 글

C# 리트코드 14. Longest Common Prefix  (0) 2022.01.18
C# 리트코드 13. Roman to Integer  (0) 2022.01.16
C# 리트코드 1. Two Sum  (0) 2022.01.13